package sounds;
import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.DataLine;
import javax.sound.sampled.FloatControl;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.SourceDataLine;

import util.AudioClipBalanced;
/** <p>An object implementing {@link java.applet.AudioClip java.applet.AudioClip} with the data from drum-03.wav hard-coded into it.</p>
 * <p>Created with the <a href="http://stephengware.com/projects/soundtoclass">SoundToClass tool</a>, by Stephen G. Ware.</p>
 * @author Stephen G. Ware */
public class Drum03 implements AudioClipBalanced {
	private byte[] data;
	private AudioFormat format;
	private DataLine.Info lineInfo = null;
	private PlayThread playThread = null;
	private LoopThread loopThread = null;
	private static final long serialVersionUID = 22040;
	private static byte[] data0(){ return new byte[] {2,0,7,5,19,10,8,15,45,20,12,25,-35,29,-59,34,106,39,-17,43,93,48,-45,52,0,57,-2,60,13,65,-70,68,63,72,-100,75,-25,78,-23,81,-89,84,108,87,-59,89,-11,91,-22,93,-47,95,88,97,-82,98,-19,99,-50,100,127,101,-11,101,86,102,104,102,66,102,10,102,-124,101,-48,100,-15,99,-9,98,-61,97,100,96,-16,94,72,93,123,91,-111,89,-104,87,115,85,60,83,-12,80,-112,78,33,76,-102,73,21,71,126,68,-34,65,65,63,-103,60,-6,57,91,55,-68,52,40,50,-94,47,21,45,-86,42,64,40,-21,37,-98,35,124,33,91,31,77,29,94,27,-111,25,-67,23,33,22,-105,20,47,19,-68,17,-116,16,97,15,77,14,83,13,-116,12,-52,11,9,11,-128,10,14,10,-123,9,69,9,0,9,-29,8,-99,8,-106,8,-103,8,125,8,-108,8,-74,8,-40,8,-38,8,6,9,49,9,56,9,89,9,-119,9,-98,9,-110,9,-104,9,-93,9,102,9,86,9,45,9,-8,8,-125,8,41,8,-69,7,8,7,114,6,-65,5,-2,4,-14,3,0,3,-13,1,-89,0,107,-1,26,-2,-78,-4,5,-5,115,-7,-64,-9,-37,-11,-1,-13,27,-14,-13,-17,-16,-19,-51,-21,-89,-23,76,-25,12,-27,-63,-30,77,-32,-10,-35,-107,-37,54,-39,-73,-42,87,-44,-7,-47,-117,-49,54,-51,-12,-54,-81,-56,113,-58,76,-60,59,-62,45,-64,65,-66,108,-68,-79,-70,-1,-72,120,-73,11,-74,-78,-76,-123,-77,111,-78,-126,-79,-81,-80,2,-80,122,-81,20,-81,-44,-82,-69,-82,-63,-82,-5,-82,76,-81,-57,-81,113,-80,48,-79,27,-78,31,-77,94,-76,-90,-75,27,-73,-76,-72,101,-70,44,-68,20,-66,42,-64,68,-62,119,-60,-46,-58,51,-55,-101,-53,55,-50,-62,-48,90,-45,-3,-43,-53,-40,123,-37,53,-34,17,-31,-51,-29,-119,-26,63,-23,25,-20,-58,-18,105,-15,47,-12,-70,-10,66,-7,-77,-5,66,-2,-107,0,-42,2,44,5,67,7,69,9,46,11,47,13,-23,14,-112,16,65,18,-73,19,12,21,78,22,-97,23,-89,24,-95,25,-100,26,99,27,10,28,-102,28,68,29,-91,29,-6,29,95,30,-117,30,-92,30,-79,30,-51,30,-64,30,-102,30,-104,30,99,30,36,30,-28,29,-68,29,112,29,36,29,-15,28,-90,28,86,28,16,28,-28,27,-86,27,109,27,95,27,52,27,33,27,36,27,38,27,48,27,76,27,-121,27,-67,27,8,28,108,28,-41,28,76,29,-35,29,122,30,49,31,-25,31,-66,32,-102,33,-124,34,126,35,-120,36,-102,37,-70,38,-30,39,20,41,82,42,-107,43,-39,44,39,46,121,47,-60,48,20,50,104,51,-76,52,-16,53,53,55,107,56,-113,57,-81,58,-52,59,-44,60,-74,61,-98,62,110,63,23,64,-71,64,75,65,-65,65,0,66,59,66,99,66,65,66,46,66,-19,65,-106,65,-12,64,85,64,-112,63,-117,62,125,61,88,60,-33,58,113,57,-35,55,38,54,43,52,45,50,25,48,-77,45,94,43,-30,40,82,38,116,35,-80,32,-57,29,-84,26,-107,23,121,20,61,17,-44,13,123,10,30,7,-122,3,20,0,-107,-4,23,-7,108,-11,-24,-15,104,-18,-59,-22,76,-25,-32,-29,118,-32,-3,-36,-81,-39,117,-42,41,-45,22,-48,22,-51,50,-54,63,-57,-109,-60,-11,-63,101,-65,6,-67,-50,-70,-76,-72,-92,-74,-51,-76,33,-77,123,-79,27,-80,-38,-82,-59,-83,-68,-84,-7,-85,77,-85,-57,-86,106,-86,62,-86,46,-86,66,-86,122,-86,-30,-86,91,-85,8,-84,-47,-84,-73,-83,-61,-82,-25,-81,48,-79,-119,-78,8,-76,-108,-75,68,-73,-2,-72,-46,-70,-75,-68,-80,-66,-77,-64,-58,-62,-20,-60,17,-57,68,-55,113,-53,-62,-51,-5,-49,61,-46,-116,-44,-49,-42,8,-39,69,-37,-117,-35,-70,-33,-34,-31,18,-28,40,-26,42,-24,43,-22,50,-20,23,-18,-22,-17,-48,-15,-127,-13,49,-11,-64,-10,111,-8,-31,-7,71,-5,-64,-4,2,-2,57,-1,91,0,-106,1,-101,2,-112,3,-97,4,120,5,69,6,5,7,-35,7,-120,8,33,9,-34,9,102,10,-23,10,-119,11,1,12,107,12,-36,12,99,13,-52,13,41,14,-75,14,16,15,118,15,-42,15,97,16,-56,16,54,17,-57,17,61,18,-72,18,53,19,-29,19,107,20,4,21,-70,21,100,22,9,23,-60,23,-105,24,97,25,39,26,26,27,-14,27,-44,28,-66,29,-61,30,-72,31,-76,32,-59,33,-53,34,-49,35,-37,36,-6,37,4,39,22,40,46,41,60,42,68,43,77,44,88,45,84,46,78,47,66,48,46,49,9,50,-31,50,-84,51,109,52,30,53,-64,53,87,54,-36,54,83,55,-74,55,6,56,78,56,113,56,-113,56,-104,56,127,56,97,56,41,56,-33,55,112,55}; }
	private static byte[] data1(){ return new byte[] {-3,54,112,54,-63,53,11,53,63,52,101,51,87,50,85,49,53,48,-16,46,-84,45,89,44,-13,42,95,41,-35,39,65,38,-123,36,-50,34,20,33,69,31,86,29,113,27,-111,25,121,23,-115,21,-119,19,-109,17,103,15,106,13,98,11,61,9,55,7,59,5,58,3,35,1,43,-1,67,-3,57,-5,96,-7,-117,-9,-57,-11,-30,-13,55,-14,-115,-16,-41,-18,73,-19,-47,-21,100,-22,-31,-24,-104,-25,86,-26,9,-27,-20,-29,-33,-30,-26,-31,-40,-32,-2,-33,52,-33,90,-34,-79,-35,23,-35,109,-36,-11,-37,-125,-37,43,-37,-71,-38,123,-38,68,-38,-4,-39,-27,-39,-56,-39,-57,-39,-89,-39,-72,-39,-66,-39,-52,-39,-30,-39,11,-38,47,-38,81,-38,123,-38,-74,-38,-44,-38,21,-37,70,-37,-127,-37,-83,-37,-28,-37,26,-36,69,-36,122,-36,-95,-36,-46,-36,-16,-36,23,-35,49,-35,79,-35,96,-35,117,-35,123,-35,-114,-35,-120,-35,-112,-35,-121,-35,-121,-35,110,-35,100,-35,83,-35,62,-35,31,-35,15,-35,-15,-36,-49,-36,-82,-36,-99,-36,123,-36,95,-36,82,-36,57,-36,32,-36,33,-36,21,-36,6,-36,6,-36,31,-36,44,-36,60,-36,115,-36,-102,-36,-57,-36,2,-35,100,-35,-73,-35,18,-34,-97,-34,23,-33,-97,-33,53,-32,-5,-32,-83,-31,117,-30,100,-29,77,-28,59,-27,66,-26,116,-25,-100,-24,-55,-23,50,-21,-123,-20,-25,-19,92,-17,-6,-16,-115,-14,39,-12,-10,-11,-87,-9,108,-7,60,-5,50,-3,26,-1,-3,0,26,3,14,5,22,7,26,9,70,11,86,13,105,15,-106,17,-80,19,-68,21,-45,23,-5,25,5,28,13,30,36,32,30,34,13,36,-9,37,-25,39,-69,41,-128,43,73,45,-7,46,-116,48,48,50,-92,51,15,53,103,54,-73,55,-25,56,4,58,17,59,6,60,-32,60,-92,61,94,62,-14,62,117,63,-28,63,55,64,113,64,-105,64,-92,64,-102,64,119,64,60,64,-19,63,-122,63,12,63,118,62,-50,61,24,61,59,60,97,59,100,58,103,57,59,56,23,55,-35,53,-124,52,49,51,-57,49,92,48,-53,46,66,45,-76,43,-1,41,97,40,-80,38,3,37,50,35,117,33,-75,31,-41,29,18,28,73,26,-127,24,-102,22,-41,20,10,19,46,17,105,15,-86,13,-43,11,25,10,111,8,-66,6,0,5,94,3,-53,1,25,0,-109,-2,18,-3,-100,-5,13,-6,-88,-8,72,-9,-39,-11,-119,-12,78,-13,18,-14,-55,-16,-97,-17,-116,-18,83,-19,80,-20,79,-21,88,-22,79,-23,104,-24,-116,-25,-100,-26,-49,-27,15,-27,80,-28,-123,-29,-47,-30,53,-30,116,-31,-32,-32,78,-32,-62,-33,36,-33,-91,-34,42,-34,-98,-35,47,-35,-60,-36,93,-36,-25,-37,-117,-37,47,-37,-53,-38,120,-38,42,-38,-26,-39,-117,-39,78,-39,15,-39,-58,-40,-108,-40,95,-40,49,-40,-6,-41,-41,-41,-80,-41,-115,-41,114,-41,90,-41,70,-41,57,-41,46,-41,48,-41,43,-41,55,-41,64,-41,86,-41,110,-41,-117,-41,-81,-41,-30,-41,14,-40,76,-40,-114,-40,-40,-40,36,-39,118,-39,-28,-39,65,-38,-77,-38,49,-37,-83,-37,53,-36,-70,-36,104,-35,-4,-35,-88,-34,100,-33,27,-32,-38,-32,-101,-31,-124,-30,84,-29,55,-28,46,-27,33,-26,16,-25,13,-24,40,-23,49,-22,63,-21,114,-20,-120,-19,-82,-18,-51,-17,26,-15,68,-14,123,-13,-52,-12,8,-10,68,-9,-124,-8,-28,-7,40,-5,105,-4,-44,-3,18,-1,95,0,-67,1,6,3,71,4,-120,5,-24,6,34,8,94,9,-80,10,-29,11,17,13,60,14,123,15,-99,16,-75,17,-28,18,-9,19,-11,20,-3,21,12,23,-1,23,-22,24,-29,25,-63,26,-114,27,93,28,51,29,-20,29,-96,30,88,31,-3,31,-115,32,32,33,-76,33,51,34,-93,34,35,35,126,35,-35,35,44,36,-127,36,-58,36,-7,36,56,37,95,37,-128,37,-102,37,-75,37,-68,37,-59,37,-61,37,-66,37,-86,37,-106,37,124,37,90,37,51,37,4,37,-45,36,-101,36,96,36,26,36,-41,35,-117,35,57,35,-26,34,-110,34,44,34,-43,33,107,33,18,33,-107,32,51,32,-66,31,68,31,-50,30,90,30,-33,29,83,29,-44,28,81,28,-66,27,50,27,-84,26,29,26,122,25,-26,24,85,24,-96,23,14,23,103,22,-48,21,11,21,108,20,-66,19,-7,18,73,18,-108,17,-31,16,9,16,78,15,-115,14,-83,13,-27,12,28,12,75,11,97,10,-122,9,-77,8,-76,7,-38,6,-12,5,14,5,9,4,25,3,47,2,24,1,42,0,42,-1,52,-2,22,-3,24,-4,19,-5,-10,-7,-19,-8,-26,-9,-36,-10,-73,-11,-86,-12,-96,-13,118,-14,107,-15,94,-16,53,-17,46,-18,27,-19,23,-20,-13,-22,-19,-23,-22,-24,-50,-25,-44,-26,-47,-27}; }
	private static byte[] data2(){ return new byte[] {-36,-28,-48,-29,-30,-30,-14,-31,-6,-32,23,-32,56,-33,96,-34,-128,-35,-75,-36,-17,-37,39,-37,111,-38,-62,-39,23,-39,117,-40,-37,-41,79,-41,-60,-42,75,-42,-42,-43,112,-43,16,-43,-71,-44,116,-44,47,-44,2,-44,-47,-45,-72,-45,-94,-45,-97,-45,-100,-45,-73,-45,-54,-45,-12,-45,31,-44,106,-44,-87,-44,5,-43,99,-43,-42,-43,67,-42,-59,-42,93,-41,-15,-41,-109,-40,75,-39,5,-38,-67,-38,-94,-37,107,-36,81,-35,48,-34,58,-33,43,-32,51,-31,75,-30,99,-29,119,-28,-102,-27,-41,-26,7,-24,58,-23,-111,-22,-51,-21,22,-19,95,-18,-57,-17,30,-15,114,-14,-24,-13,71,-11,-91,-10,10,-8,-121,-7,-17,-6,83,-4,-39,-3,61,-1,-89,0,11,2,-115,3,-15,4,81,6,-49,7,42,9,-123,10,-38,11,72,13,-107,14,-30,15,60,17,-128,18,-75,19,-19,20,48,22,89,23,119,24,-88,25,-71,26,-62,27,-61,28,-48,29,-63,30,-89,31,-102,32,109,33,58,34,-9,34,-57,35,110,36,23,37,-68,37,75,38,-47,38,86,39,-58,39,41,40,-126,40,-37,40,33,41,86,41,-111,41,-79,41,-53,41,-40,41,-29,41,-38,41,-54,41,-80,41,-117,41,89,41,33,41,-35,40,-112,40,58,40,-40,39,111,39,-1,38,-124,38,1,38,115,37,-27,36,66,36,-92,35,-4,34,79,34,-111,33,-40,32,22,32,72,31,121,30,-80,29,-41,28,-11,27,20,27,57,26,67,25,97,24,115,23,-113,22,-120,21,-96,20,-85,19,-88,18,-76,17,-65,16,-49,15,-64,14,-48,13,-40,12,-46,11,-37,10,-20,9,-30,8,-13,7,4,7,26,6,17,5,48,4,66,3,73,2,99,1,-121,0,-90,-1,-74,-2,-37,-3,7,-3,30,-4,74,-5,-124,-6,-75,-7,-38,-8,21,-8,86,-9,126,-10,-55,-11,13,-11,96,-12,-111,-13,-24,-14,62,-14,127,-15,-37,-16,58,-16,-98,-17,-21,-18,86,-18,-67,-19,28,-19,-122,-20,2,-20,114,-21,-35,-22,86,-22,-39,-23,70,-23,-50,-24,84,-24,-33,-25,94,-25,-19,-26,-126,-26,8,-26,-91,-27,63,-27,-33,-28,119,-28,26,-28,-57,-29,102,-29,23,-29,-51,-30,127,-30,57,-30,-17,-31,-71,-31,120,-31,63,-31,21,-31,-35,-32,-67,-32,-110,-32,121,-32,90,-32,72,-32,55,-32,45,-32,42,-32,42,-32,46,-32,65,-32,78,-32,108,-32,-118,-32,-77,-32,-38,-32,9,-31,79,-31,-123,-31,-48,-31,32,-30,117,-30,-51,-30,40,-29,-94,-29,6,-28,-128,-28,5,-27,-121,-27,16,-26,-103,-26,69,-25,-39,-25,-128,-24,53,-23,-24,-23,-106,-22,83,-21,35,-20,-22,-20,-80,-19,-103,-18,105,-17,66,-16,31,-15,22,-14,-5,-14,-26,-13,-30,-12,-37,-11,-61,-10,-65,-9,-56,-8,-60,-7,-69,-6,-45,-5,-52,-4,-54,-3,-31,-2,-35,-1,-36,0,-41,1,-19,2,-26,3,-31,4,-17,5,-28,6,-39,7,-58,8,-49,9,-77,10,-96,11,-108,12,119,13,78,14,38,15,13,16,-39,16,-95,17,119,18,54,19,-21,19,-97,20,93,21,2,22,-91,22,78,23,-30,23,114,24,-11,24,-116,25,0,26,123,26,-14,26,94,27,-68,27,27,28,122,28,-54,28,20,29,94,29,-97,29,-46,29,9,30,56,30,97,30,-127,30,-93,30,-72,30,-53,30,-41,30,-31,30,-28,30,-29,30,-37,30,-45,30,-61,30,-81,30,-105,30,123,30,90,30,55,30,10,30,-27,29,-85,29,124,29,70,29,13,29,-56,28,-121,28,69,28,-15,27,-86,27,89,27,12,27,-91,26,81,26,-13,25,-121,25,33,25,-66,24,80,24,-42,23,95,23,-20,22,95,22,-31,21,95,21,-39,20,57,20,-85,19,25,19,103,18,-45,17,39,17,-117,16,-60,15,22,15,100,14,-112,13,-43,12,18,12,73,11,103,10,-108,9,-64,8,-52,7,-16,6,7,6,37,5,26,4,48,3,55,2,38,1,47,0,41,-1,44,-2,11,-3,3,-4,-7,-6,-42,-7,-58,-8,-76,-9,-92,-10,119,-11,104,-12,82,-13,39,-14,25,-15,1,-16,-31,-18,-49,-19,-59,-20,-75,-21,-93,-22,-104,-23,-100,-24,-111,-25,-106,-26,-87,-27,-71,-28,-57,-29,-24,-30,13,-30,53,-31,102,-32,-85,-33,-19,-34,55,-34,-111,-35,-12,-36,89,-36,-42,-37,82,-37,-24,-38,117,-38,30,-38,-52,-39,-122,-39,76,-39,36,-39,1,-39,-18,-40,-23,-40,-20,-40,3,-39,32,-39,77,-39,-122,-39,-52,-39,31,-38,122,-38,-23,-38,94,-37,-36,-37,106,-36,4,-35,-87,-35,80,-34,18,-33,-48,-33,-103,-32,106,-31,80,-30,50,-29,25,-28,29,-27,12,-26,18,-25,31,-24,42,-23,56,-22,71,-21,111,-20,-121,-19,-94,-18,-45,-17,-17,-16,19,-14,46,-13,104,-12,-124,-11,-89,-10,-40,-9,-12,-8,16,-6,38,-5,82,-4,95,-3,112,-2,-117,-1}; }
	private static byte[] data3(){ return new byte[] {-110,0,-113,1,-117,2,-109,3,-121,4,104,5,106,6,62,7,27,8,-28,8,-58,9,-123,10,63,11,8,12,-76,12,87,13,-11,13,-94,14,48,15,-71,15,79,16,-55,16,61,17,-83,17,36,18,-120,18,-31,18,72,19,-102,19,-31,19,41,20,121,20,-76,20,-21,20,47,21,91,21,-118,21,-82,21,-31,21,5,22,31,22,79,22,97,22,127,22,-100,22,-79,22,-59,22,-43,22,-17,22,-2,22,11,23,34,23,44,23,61,23,67,23,90,23,97,23,109,23,124,23,-125,23,-113,23,-104,23,-97,23,-85,23,-82,23,-73,23,-68,23,-65,23,-59,23,-61,23,-60,23,-60,23,-69,23,-75,23,-79,23,-94,23,-106,23,125,23,115,23,79,23,54,23,27,23,-10,22,-55,22,-101,22,111,22,44,22,-13,21,-74,21,113,21,25,21,-54,20,116,20,9,20,-90,19,64,19,-49,18,74,18,-48,17,74,17,-78,16,34,16,-116,15,-34,14,60,14,-113,13,-25,12,25,12,97,11,-96,10,-60,9,-5,8,41,8,85,7,101,6,-118,5,-90,4,-82,3,-60,2,-39,1,-21,0,-25,-1,-12,-2,2,-2,-8,-4,3,-4,14,-5,27,-6,15,-7,33,-8,42,-9,44,-10,59,-11,84,-12,106,-13,116,-14,-106,-15,-71,-16,-45,-17,-1,-18,54,-18,108,-19,-95,-20,-30,-21,52,-21,118,-22,-45,-23,53,-23,-96,-24,6,-24,126,-25,7,-25,126,-26,28,-26,-80,-27,91,-27,-4,-28,-77,-28,117,-28,49,-28,6,-28,-37,-29,-63,-29,-94,-29,-106,-29,-109,-29,-115,-29,-99,-29,-83,-29,-62,-29,-22,-29,9,-28,65,-28,111,-28,-83,-28,-17,-28,54,-27,-123,-27,-45,-27,45,-26,-121,-26,-22,-26,73,-25,-74,-25,32,-24,-115,-24,-7,-24,116,-23,-27,-23,94,-22,-37,-22,85,-21,-52,-21,71,-20,-53,-20,72,-19,-63,-19,73,-18,-60,-18,63,-17,-72,-17,65,-16,-69,-16,48,-15,-68,-15,46,-14,-87,-14,26,-13,-95,-13,19,-12,-121,-12,11,-11,122,-11,-18,-11,89,-10,-30,-10,76,-9,-66,-9,65,-8,-83,-8,34,-7,-116,-7,20,-6,-125,-6,-9,-6,125,-5,-15,-5,102,-4,-13,-4,106,-3,-25,-3,95,-2,-10,-2,116,-1,-7,-1,-109,0,23,1,-88,1,49,2,-40,2,107,3,-2,3,-81,4,70,5,-24,5,-119,6,62,7,-26,7,-113,8,78,9,-5,9,-83,10,96,11,35,12,-35,12,-111,13,91,14,19,15,-49,15,-117,16,78,17,15,18,-60,18,-118,19,68,20,-10,20,-81,21,101,22,23,23,-63,23,114,24,18,25,-75,25,76,26,-23,26,119,27,0,28,-121,28,1,29,120,29,-32,29,76,30,-92,30,-8,30,69,31,-126,31,-66,31,-23,31,14,32,35,32,55,32,51,32,47,32,29,32,-7,31,-43,31,-99,31,100,31,15,31,-64,30,91,30,-19,29,116,29,-8,28,106,28,-49,27,42,27,-120,26,-59,25,10,25,72,24,120,23,-105,22,-70,21,-44,20,-36,19,-24,18,-16,17,-12,16,-34,15,-38,14,-54,13,-83,12,-105,11,-123,10,108,9,66,8,40,7,13,6,-30,4,-57,3,-82,2,-103,1,110,0,96,-1,77,-2,47,-3,44,-4,33,-5,41,-6,26,-7,37,-8,59,-9,61,-10,95,-11,-124,-12,-80,-13,-44,-14,17,-14,84,-15,-111,-16,-29,-17,67,-17,-90,-18,5,-18,120,-19,-5,-20,110,-20,2,-20,-104,-21,41,-21,-43,-22,-124,-22,64,-22,-14,-23,-67,-23,-116,-23,90,-23,53,-23,33,-23,7,-23,-10,-24,-21,-24,-21,-24,-26,-24,-16,-24,0,-23,18,-23,36,-23,62,-23,94,-23,124,-23,-96,-23,-53,-23,-10,-23,32,-22,77,-22,-124,-22,-83,-22,-23,-22,23,-21,83,-21,-125,-21,-66,-21,-14,-21,44,-20,96,-20,-101,-20,-51,-20,9,-19,59,-19,115,-19,-86,-19,-34,-19,15,-18,68,-18,119,-18,-83,-18,-39,-18,18,-17,68,-17,111,-17,-93,-17,-41,-17,11,-16,54,-16,118,-16,-94,-16,-40,-16,19,-15,73,-15,125,-15,-76,-15,-6,-15,55,-14,111,-14,-61,-14,-3,-14,75,-13,-118,-13,-22,-13,54,-12,-122,-12,-15,-12,67,-11,-88,-11,1,-10,127,-10,-29,-10,85,-9,-42,-9,79,-8,-56,-8,74,-7,-33,-7,103,-6,-7,-6,-107,-5,51,-4,-58,-4,107,-3,26,-2,-59,-2,104,-1,45,0,-39,0,-114,1,69,2,12,3,-55,3,-124,4,85,5,19,6,-42,6,-106,7,103,8,42,9,-21,9,-70,10,123,11,56,12,-11,12,-68,13,117,14,41,15,-26,15,-104,16,58,17,-25,17,-114,18,43,19,-61,19,89,20,-24,20,105,21,-15,21,104,22,-42,22,65,23,-88,23,-1,23,84,24,-95,24,-29,24,30,25,75,25,124,25,-102,25,-78,25,-60,25,-52,25,-55,25,-63,25,-80,25,-110,25,119,25,67,25,28,25,-38,24,-96,24,82,24,6,24}; }
	private static byte[] data4(){ return new byte[] {-79,23,82,23,-17,22,-120,22,30,22,-93,21,46,21,-78,20,41,20,-87,19,28,19,-104,18,-5,17,113,17,-41,16,63,16,-95,15,18,15,112,14,-45,13,51,13,-99,12,-13,11,91,11,-62,10,40,10,-122,9,-20,8,93,8,-74,7,41,7,-103,6,-5,5,119,5,-24,4,103,4,-44,3,82,3,-42,2,75,2,-46,1,91,1,-18,0,101,0,-2,-1,-112,-1,22,-1,-77,-2,76,-2,-21,-3,125,-3,27,-3,-61,-4,85,-4,-3,-5,-89,-5,77,-5,-20,-6,-110,-6,69,-6,-38,-7,-112,-7,52,-7,-23,-8,-126,-8,51,-8,-35,-9,125,-9,40,-9,-46,-10,-128,-10,23,-10,-59,-11,105,-11,4,-11,-85,-12,75,-12,-12,-13,-123,-13,44,-13,-59,-14,98,-14,-8,-15,-98,-15,52,-15,-54,-16,104,-16,-2,-17,-105,-17,49,-17,-55,-18,106,-18,-5,-19,-99,-19,56,-19,-40,-20,115,-20,30,-20,-71,-21,103,-21,13,-21,-66,-22,106,-22,35,-22,-42,-23,-106,-23,85,-23,29,-23,-28,-24,-71,-24,-116,-24,104,-24,78,-24,52,-24,34,-24,22,-24,24,-24,29,-24,35,-24,65,-24,85,-24,123,-24,-95,-24,-35,-24,20,-23,88,-23,-88,-23,-2,-23,84,-22,-72,-22,45,-21,-98,-21,29,-20,-90,-20,53,-19,-63,-19,95,-18,8,-17,-78,-17,93,-16,33,-15,-38,-15,-101,-14,96,-13,58,-12,11,-11,-34,-11,-56,-10,-91,-9,-126,-8,106,-7,90,-6,71,-5,47,-4,42,-3,21,-2,5,-1,-2,-1,-17,0,-41,1,-61,2,-67,3,-95,4,-118,5,119,6,88,7,50,8,9,9,-22,9,-70,10,-128,11,84,12,19,13,-58,13,125,14,49,15,-39,15,117,16,24,17,-88,17,46,18,-79,18,49,19,-87,19,8,20,126,20,-50,20,37,21,106,21,-71,21,-20,21,37,22,79,22,120,22,-113,22,-93,22,-72,22,-70,22,-67,22,-76,22,-83,22,-113,22,124,22,91,22,53,22,11,22,-36,21,-88,21,109,21,48,21,-18,20,-85,20,95,20,22,20,-61,19,120,19,28,19,-51,18,109,18,28,18,-72,17,97,17,-1,16,-92,16,62,16,-23,15,-127,15,37,15,-64,14,103,14,0,14,-93,13,73,13,-22,12,-120,12,47,12,-47,11,118,11,22,11,-57,10,106,10,15,10,-73,9,101,9,8,9,-78,8,101,8,15,8,-76,7,100,7,17,7,-75,6,101,6,17,6,-58,5,96,5,20,5,-66,4,93,4,10,4,-76,3,94,3,-7,2,-98,2,70,2,-38,1,126,1,30,1,-65,0,76,0,-23,-1,-125,-1,11,-1,-92,-2,50,-2,-51,-3,70,-3,-36,-4,101,-4,-29,-5,108,-5,-11,-6,121,-6,-12,-7,118,-7,-9,-8,112,-8,-21,-9,113,-9,-32,-10,97,-10,-31,-11,97,-11,-45,-12,87,-12,-44,-13,79,-13,-45,-14,84,-14,-33,-15,91,-15,-25,-16,118,-16,-6,-17,-111,-17,37,-17,-65,-18,86,-18,-9,-19,-100,-19,66,-19,-17,-20,-94,-20,92,-20,19,-20,-39,-21,-98,-21,108,-21,64,-21,25,-21,-8,-22,-31,-22,-57,-22,-62,-22,-76,-22,-70,-22,-69,-22,-51,-22,-35,-22,-4,-22,24,-21,71,-21,111,-21,-88,-21,-36,-21,36,-20,106,-20,-76,-20,12,-19,100,-19,-68,-19,35,-18,-114,-18,-7,-18,107,-17,-28,-17,95,-16,-36,-16,98,-15,-23,-15,109,-14,-11,-14,-113,-13,25,-12,-83,-12,72,-11,-36,-11,113,-10,5,-9,-86,-9,64,-8,-41,-8,124,-7,17,-6,-88,-6,62,-5,-32,-5,116,-4,5,-3,-92,-3,50,-2,-65,-2,75,-1,-33,-1,102,0,-22,0,121,1,-8,1,113,2,-21,2,112,3,-33,3,84,4,-58,4,56,5,-106,5,0,6,104,6,-56,6,30,7,-122,7,-42,7,43,8,117,8,-49,8,22,9,94,9,-85,9,-17,9,42,10,106,10,-82,10,-26,10,31,11,90,11,-109,11,-65,11,-12,11,41,12,87,12,-122,12,-73,12,-29,12,14,13,58,13,103,13,-117,13,-76,13,-32,13,5,14,42,14,84,14,121,14,-101,14,-64,14,-28,14,9,15,41,15,78,15,107,15,-113,15,-87,15,-50,15,-29,15,8,16,25,16,57,16,78,16,99,16,122,16,-119,16,-99,16,-91,16,-75,16,-68,16,-57,16,-59,16,-56,16,-59,16,-66,16,-76,16,-85,16,-101,16,-126,16,108,16,81,16,44,16,7,16,-30,15,-75,15,123,15,73,15,12,15,-57,14,-126,14,57,14,-18,13,-111,13,56,13,-33,12,112,12,10,12,-92,11,34,11,-77,10,56,10,-67,9,45,9,-87,8,29,8,-123,7,-15,6,94,6,-62,5,28,5,123,4,-39,3,41,3,-128,2,-38,1,45,1,117,0,-58,-1,26,-1,91,-2,-83,-3,-4,-4,77,-4,-112,-5,-29,-6,51,-6,123,-7,-48,-8,41,-8,127,-9,-46,-10,45,-10,-112,-11,-22,-12,80,-12,-67,-13,45,-13}; }
	private static byte[] data5(){ return new byte[] {-107,-14,17,-14,-119,-15,6,-15,-119,-16,23,-16,-87,-17,55,-17,-45,-18,117,-18,24,-18,-62,-19,126,-19,49,-19,-15,-20,-74,-20,-124,-20,83,-20,44,-20,15,-20,-14,-21,-33,-21,-49,-21,-54,-21,-58,-21,-53,-21,-40,-21,-27,-21,-1,-21,24,-20,61,-20,96,-20,-114,-20,-64,-20,-13,-20,50,-19,106,-19,-77,-19,-7,-19,67,-18,-108,-18,-29,-18,64,-17,-111,-17,-16,-17,78,-16,-80,-16,17,-15,123,-15,-30,-15,69,-14,-77,-14,31,-13,-114,-13,-8,-13,108,-12,-36,-12,71,-11,-75,-11,46,-10,-103,-10,13,-9,125,-9,-14,-9,90,-8,-55,-8,64,-7,-87,-7,23,-6,-119,-6,-11,-6,91,-5,-61,-5,53,-4,-102,-4,0,-3,109,-3,-45,-3,49,-2,-108,-2,-1,-2,94,-1,-69,-1,36,0,-127,0,-36,0,66,1,-100,1,-12,1,77,2,-79,2,7,3,93,3,-65,3,22,4,103,4,-64,4,25,5,114,5,-62,5,33,6,116,6,-61,6,22,7,114,7,-61,7,18,8,108,8,-67,8,10,9,90,9,-80,9,-2,9,73,10,-95,10,-24,10,55,11,122,11,-49,11,20,12,90,12,-89,12,-24,12,43,13,107,13,-80,13,-21,13,40,14,100,14,-102,14,-48,14,0,15,52,15,96,15,-117,15,-78,15,-39,15,-8,15,21,16,53,16,68,16,97,16,103,16,124,16,126,16,-121,16,-125,16,-128,16,123,16,105,16,95,16,68,16,47,16,12,16,-13,15,-59,15,-96,15,107,15,64,15,-1,14,-54,14,-121,14,75,14,-8,13,-77,13,101,13,8,13,-70,12,89,12,5,12,-103,11,56,11,-46,10,99,10,-12,9,-115,9,22,9,-95,8,38,8,-73,7,47,7,-70,6,60,6,-61,5,56,5,-66,4,59,4,-74,3,50,3,-74,2,51,2,-83,1,42,1,-81,0,35,0,-89,-1,46,-1,-80,-2,47,-2,-77,-3,65,-3,-66,-4,78,-4,-37,-5,112,-5,-12,-6,-114,-6,35,-6,-75,-7,83,-7,-15,-8,-106,-8,46,-8,-40,-9,-125,-9,39,-9,-42,-10,-116,-10,53,-10,-13,-11,-86,-11,111,-11,36,-11,-23,-12,-75,-12,112,-12,70,-12,14,-12,-23,-13,-81,-13,-114,-13,101,-13,59,-13,32,-13,-4,-14,-27,-14,-59,-14,-83,-14,-102,-14,-126,-14,114,-14,101,-14,86,-14,74,-14,64,-14,59,-14,50,-14,49,-14,44,-14,48,-14,46,-14,50,-14,55,-14,60,-14,70,-14,79,-14,87,-14,104,-14,116,-14,-125,-14,-104,-14,-88,-14,-68,-14,-46,-14,-21,-14,4,-13,29,-13,60,-13,90,-13,119,-13,-103,-13,-66,-13,-29,-13,7,-12,53,-12,94,-12,-119,-12,-68,-12,-22,-12,29,-11,75,-11,-115,-11,-65,-11,-5,-11,60,-10,124,-10,-71,-10,-5,-10,72,-9,-112,-9,-45,-9,48,-8,115,-8,-53,-8,20,-7,122,-7,-55,-7,39,-6,-121,-6,-25,-6,66,-5,-90,-5,16,-4,121,-4,-39,-4,83,-3,-74,-3,40,-2,-112,-2,14,-1,121,-1,-18,-1,105,0,-34,0,80,1,-56,1,67,2,-64,2,47,3,-74,3,41,4,-95,4,24,5,-107,5,15,6,-128,6,-2,6,115,7,-32,7,86,8,-56,8,58,9,-96,9,22,10,123,10,-33,10,66,11,-85,11,2,12,101,12,-72,12,22,13,94,13,-73,13,-3,13,68,14,-120,14,-56,14,5,15,57,15,114,15,-98,15,-56,15,-16,15,16,16,49,16,71,16,94,16,110,16,120,16,-128,16,-125,16,127,16,125,16,107,16,97,16,75,16,53,16,20,16,-8,15,-48,15,-88,15,122,15,74,15,23,15,-35,14,-97,14,98,14,28,14,-42,13,-113,13,66,13,-16,12,-99,12,78,12,-20,11,-103,11,57,11,-30,10,120,10,27,10,-74,9,76,9,-27,8,-126,8,23,8,-87,7,60,7,-43,6,95,6,-14,5,-117,5,14,5,-86,4,53,4,-48,3,84,3,-21,2,126,2,9,2,-98,1,50,1,-51,0,83,0,-14,-1,-124,-1,25,-1,-80,-2,79,-2,-22,-3,127,-3,29,-3,-62,-4,85,-4,-3,-5,-97,-5,70,-5,-24,-6,-117,-6,61,-6,-37,-7,-115,-7,58,-7,-17,-8,-105,-8,79,-8,3,-8,-76,-9,112,-9,42,-9,-21,-10,-96,-10,100,-10,39,-10,-28,-11,-83,-11,116,-11,68,-11,4,-11,-39,-12,-91,-12,118,-12,74,-12,31,-12,-5,-13,-50,-13,-83,-13,-114,-13,102,-13,79,-13,47,-13,28,-13,0,-13,-21,-14,-37,-14,-57,-14,-67,-14,-80,-14,-91,-14,-95,-14,-103,-14,-99,-14,-105,-14,-97,-14,-95,-14,-83,-14,-77,-14,-60,-14,-49,-14,-27,-14,-7,-14,12,-13,47,-13,65,-13,104,-13,-126,-13,-86,-13,-47,-13,-9,-13,39,-12,84,-12,-126,-12,-79,-12,-15,-12,31,-11,96,-11,-103,-11,-36,-11,23,-10,91,-10,-92,-10,-22,-10,50,-9,-127,-9,-49,-9,27,-8,105,-8,-61,-8,21,-7,104,-7,-56,-7,29,-6}; }
	private static byte[] data6(){ return new byte[] {116,-6,-47,-6,48,-5,-113,-5,-22,-5,80,-4,-79,-4,12,-3,111,-3,-41,-3,56,-2,-104,-2,4,-1,100,-1,-58,-1,50,0,-112,0,-13,0,83,1,-68,1,28,2,123,2,-31,2,64,3,-100,3,-10,3,91,4,-77,4,11,5,107,5,-64,5,18,6,101,6,-65,6,11,7,90,7,-84,7,-11,7,61,8,-127,8,-52,8,14,9,75,9,-111,9,-57,9,4,10,56,10,112,10,-91,10,-50,10,5,11,44,11,85,11,122,11,-98,11,-61,11,-35,11,-3,11,23,12,42,12,65,12,84,12,97,12,113,12,120,12,-123,12,-122,12,-118,12,-115,12,-121,12,-120,12,125,12,118,12,106,12,95,12,76,12,60,12,38,12,17,12,-10,11,-32,11,-69,11,-93,11,-128,11,93,11,57,11,15,11,-21,10,-69,10,-113,10,101,10,53,10,-2,9,-48,9,-105,9,97,9,39,9,-16,8,-73,8,117,8,56,8,-6,7,-75,7,113,7,53,7,-20,6,-91,6,92,6,25,6,-59,5,-128,5,52,5,-20,4,-105,4,74,4,-4,3,-89,3,87,3,8,3,-70,2,91,2,16,2,-72,1,97,1,13,1,-71,0,103,0,9,0,-74,-1,97,-1,6,-1,-83,-2,96,-2,3,-2,-80,-3,84,-3,5,-3,-87,-4,82,-4,5,-4,-79,-5,87,-5,8,-5,-74,-6,97,-6,18,-6,-61,-7,117,-7,33,-7,-32,-8,-112,-8,69,-8,-1,-9,-71,-9,111,-9,46,-9,-20,-10,-78,-10,104,-10,54,-10,-12,-11,-65,-11,-124,-11,85,-11,32,-11,-15,-12,-63,-12,-105,-12,108,-12,70,-12,33,-12,4,-12,-37,-13,-56,-13,-89,-13,-108,-13,124,-13,108,-13,91,-13,81,-13,69,-13,63,-13,60,-13,56,-13,60,-13,63,-13,71,-13,83,-13,92,-13,112,-13,-127,-13,-106,-13,-80,-13,-55,-13,-21,-13,7,-12,47,-12,85,-12,123,-12,-89,-12,-42,-12,10,-11,54,-11,119,-11,-90,-11,-27,-11,36,-10,97,-10,-93,-10,-30,-10,47,-9,116,-9,-69,-9,14,-8,86,-8,-89,-8,-13,-8,77,-7,-99,-7,-14,-7,78,-6,-92,-6,-5,-6,83,-5,-76,-5,15,-4,105,-4,-50,-4,43,-3,-123,-3,-27,-3,74,-2,-88,-2,8,-1,109,-1,-50,-1,40,0,-117,0,-19,0,79,1,-87,1,17,2,106,2,-56,2,34,3,-126,3,-32,3,49,4,-105,4,-24,4,62,5,-112,5,-22,5,58,6,-118,6,-36,6,41,7,114,7,-71,7,6,8,76,8,-119,8,-43,8,14,9,75,9,-123,9,-64,9,-9,9,39,10,94,10,-119,10,-73,10,-31,10,11,11,41,11,80,11,108,11,-116,11,-93,11,-68,11,-45,11,-32,11,-15,11,-2,11,6,12,16,12,17,12,22,12,17,12,16,12,7,12,0,12,-11,11,-29,11,-42,11,-64,11,-85,11,-107,11,116,11,96,11,53,11,31,11,-16,10,-43,10,-93,10,124,10,82,10,30,10,-16,9,-65,9,-119,9,85,9,25,9,-26,8,-94,8,107,8,45,8,-18,7,-83,7,103,7,42,7,-33,6,-101,6,87,6,18,6,-62,5,126,5,52,5,-28,4,-99,4,79,4,1,4,-77,3,107,3,30,3,-54,2,127,2,50,2,-33,1,-110,1,71,1,-7,0,-88,0,89,0,17,0,-70,-1,114,-1,39,-1,-35,-2,-117,-2,67,-2,-8,-3,-85,-3,99,-3,28,-3,-40,-4,-120,-4,72,-4,1,-4,-70,-5,119,-5,54,-5,-6,-6,-82,-6,121,-6,51,-6,-5,-7,-71,-7,-123,-7,76,-7,15,-7,-38,-8,-89,-8,110,-8,62,-8,13,-8,-30,-9,-86,-9,-121,-9,85,-9,47,-9,4,-9,-31,-10,-66,-10,-106,-10,121,-10,88,-10,57,-10,32,-10,3,-10,-16,-11,-46,-11,-59,-11,-82,-11,-96,-11,-114,-11,-123,-11,119,-11,113,-11,105,-11,101,-11,98,-11,98,-11,99,-11,103,-11,110,-11,114,-11,-128,-11,-119,-11,-101,-11,-90,-11,-66,-11,-51,-11,-23,-11,-5,-11,29,-10,51,-10,86,-10,119,-10,-103,-10,-66,-10,-30,-10,14,-9,59,-9,95,-9,-102,-9,-61,-9,-11,-9,42,-8,95,-8,-102,-8,-50,-8,15,-7,72,-7,-122,-7,-63,-7,10,-6,69,-6,-116,-6,-47,-6,25,-5,91,-5,-95,-5,-16,-5,56,-4,-127,-4,-47,-4,26,-3,104,-3,-81,-3,7,-2,79,-2,-98,-2,-15,-2,63,-1,-116,-1,-32,-1,46,0,122,0,-58,0,29,1,102,1,-76,1,4,2,82,2,-102,2,-29,2,53,3,122,3,-61,3,16,4,83,4,-103,4,-38,4,35,5,99,5,-94,5,-26,5,34,6,92,6,-106,6,-44,6,9,7,61,7,118,7,-88,7,-44,7,8,8,47,8,99,8,-126,8,-76,8,-44,8,-7,8,23,9,59,9,88,9,114,9,-114,9,-90,9,-72,9,-49,9,-33,9,-16,9,-1,9,6,10,23,10,21,10,37,10,33,10,41,10,34,10}; }
	private static byte[] data7(){ return new byte[] {40,10,28,10,30,10,17,10,9,10,-3,9,-14,9,-32,9,-47,9,-65,9,-89,9,-108,9,123,9,100,9,70,9,42,9,13,9,-23,8,-53,8,-91,8,-121,8,87,8,55,8,11,8,-34,7,-76,7,-122,7,90,7,38,7,-11,6,-60,6,-116,6,87,6,34,6,-18,5,-84,5,121,5,58,5,-4,4,-66,4,-124,4,67,4,0,4,-67,3,127,3,54,3,-15,2,-77,2,106,2,32,2,-36,1,-110,1,75,1,-5,0,-67,0,108,0,36,0,-44,-1,-110,-1,59,-1,-10,-2,-86,-2,98,-2,16,-2,-57,-3,125,-3,46,-3,-28,-4,-101,-4,85,-4,3,-4,-64,-5,118,-5,43,-5,-26,-6,-95,-6,88,-6,23,-6,-45,-7,-106,-7,78,-7,20,-7,-43,-8,-106,-8,93,-8,37,-8,-17,-9,-72,-9,-127,-9,86,-9,29,-9,-10,-10,-56,-10,-95,-10,119,-10,81,-10,50,-10,13,-10,-14,-11,-42,-11,-66,-11,-91,-11,-107,-11,127,-11,118,-11,100,-11,95,-11,88,-11,81,-11,86,-11,79,-11,93,-11,91,-11,108,-11,116,-11,-124,-11,-104,-11,-88,-11,-59,-11,-39,-11,-5,-11,16,-10,60,-10,87,-10,-125,-10,-89,-10,-42,-10,-3,-10,45,-9,98,-9,-114,-9,-53,-9,-7,-9,59,-8,107,-8,-79,-8,-25,-8,41,-7,99,-7,-84,-7,-21,-7,46,-6,118,-6,-71,-6,-1,-6,69,-5,-113,-5,-39,-5,28,-4,110,-4,-77,-4,-3,-4,68,-3,-110,-3,-34,-3,32,-2,119,-2,-73,-2,4,-1,70,-1,-103,-1,-38,-1,36,0,109,0,-78,0,-9,0,55,1,-127,1,-60,1,-1,1,76,2,-126,2,-57,2,-6,2,70,3,117,3,-74,3,-18,3,39,4,91,4,-113,4,-58,4,-7,4,40,5,91,5,-117,5,-77,5,-31,5,13,6,56,6,89,6,-117,6,-89,6,-47,6,-21,6,22,7,47,7,82,7,109,7,-116,7,-94,7,-63,7,-43,7,-18,7,-2,7,25,8,39,8,58,8,74,8,90,8,102,8,114,8,126,8,-122,8,-112,8,-105,8,-101,8,-94,8,-95,8,-89,8,-91,8,-92,8,-95,8,-96,8,-106,8,-104,8,-122,8,-124,8,117,8,108,8,90,8,81,8,59,8,46,8,21,8,5,8,-22,7,-44,7,-68,7,-95,7,-127,7,102,7,70,7,35,7,1,7,-35,6,-69,6,-114,6,105,6,61,6,18,6,-31,5,-71,5,-121,5,84,5,32,5,-16,4,-76,4,-126,4,72,4,14,4,-46,3,-101,3,94,3,29,3,-31,2,-95,2,96,2,26,2,-31,1,-101,1,86,1,19,1,-47,0,-121,0,68,0,1,0,-68,-1,117,-1,45,-1,-20,-2,-95,-2,93,-2,27,-2,-40,-3,-116,-3,80,-3,9,-3,-58,-4,-124,-4,69,-4,7,-4,-59,-5,-121,-5,76,-5,13,-5,-44,-6,-99,-6,102,-6,45,-6,-8,-7,-55,-7,-109,-7,99,-7,58,-7,10,-7,-32,-8,-72,-8,-110,-8,107,-8,73,-8,40,-8,13,-8,-20,-9,-46,-9,-69,-9,-93,-9,-114,-9,125,-9,111,-9,90,-9,87,-9,68,-9,68,-9,55,-9,57,-9,51,-9,54,-9,55,-9,58,-9,67,-9,72,-9,83,-9,97,-9,104,-9,127,-9,-119,-9,-97,-9,-76,-9,-58,-9,-31,-9,-6,-9,15,-8,48,-8,73,-8,107,-8,-121,-8,-85,-8,-52,-8,-18,-8,18,-7,55,-7,97,-7,-127,-7,-79,-7,-40,-7,-2,-7,43,-6,86,-6,-125,-6,-81,-6,-33,-6,11,-5,59,-5,101,-5,-100,-5,-55,-5,-8,-5,48,-4,93,-4,-111,-4,-68,-4,-5,-4,38,-3,93,-3,-110,-3,-58,-3,-7,-3,43,-2,103,-2,-106,-2,-48,-2,5,-1,60,-1,112,-1,-87,-1,-30,-1,17,0,75,0,-125,0,-70,0,-18,0,42,1,95,1,-108,1,-54,1,4,2,58,2,111,2,-87,2,-33,2,17,3,72,3,127,3,-73,3,-27,3,34,4,80,4,-120,4,-76,4,-17,4,28,5,77,5,-125,5,-82,5,-33,5,10,6,58,6,104,6,-114,6,-65,6,-29,6,13,7,50,7,88,7,126,7,-100,7,-62,7,-32,7,-4,7,25,8,53,8,76,8,102,8,119,8,-114,8,-99,8,-83,8,-69,8,-58,8,-50,8,-40,8,-40,8,-30,8,-37,8,-33,8,-41,8,-44,8,-55,8,-65,8,-76,8,-98,8,-107,8,121,8,108,8,73,8,56,8,20,8,-7,7,-43,7,-77,7,-112,7,101,7,61,7,17,7,-29,6,-77,6,-122,6,81,6,28,6,-26,5,-79,5,116,5,59,5,0,5,-56,4,-127,4,73,4,7,4,-62,3,-124,3,66,3,-1,2,-69,2,117,2,52,2,-21,1,-91,1,102,1,31,1,-39,0,-109,0,81,0,8,0,-55,-1,-128,-1,73,-1,-7,-2,-64,-2,126,-2,55,-2,0,-2,-66,-3,-120,-3,67,-3,13,-3,-46,-4,-102,-4,97,-4,48,-4,-6,-5,-58,-5}; }
	private static byte[] data8(){ return new byte[] {-109,-5,104,-5,52,-5,7,-5,-30,-6,-83,-6,-112,-6,96,-6,70,-6,23,-6,-3,-7,-38,-7,-69,-7,-99,-7,-125,-7,109,-7,77,-7,61,-7,36,-7,18,-7,-2,-8,-16,-8,-31,-8,-47,-8,-55,-8,-71,-8,-76,-8,-87,-8,-92,-8,-96,-8,-103,-8,-103,-8,-105,-8,-106,-8,-106,-8,-101,-8,-101,-8,-92,-8,-90,-8,-84,-8,-71,-8,-70,-8,-50,-8,-51,-8,-26,-8,-26,-8,-1,-8,7,-7,28,-7,40,-7,61,-7,77,-7,100,-7,117,-7,-113,-7,-94,-7,-68,-7,-49,-7,-17,-7,4,-6,33,-6,62,-6,90,-6,120,-6,-105,-6,-72,-6,-44,-6,-8,-6,25,-5,64,-5,92,-5,-115,-5,-88,-5,-42,-5,-11,-5,38,-4,75,-4,118,-4,-93,-4,-50,-4,-7,-4,39,-3,84,-3,-119,-3,-81,-3,-21,-3,22,-2,72,-2,121,-2,-80,-2,-31,-2,23,-1,76,-1,-124,-1,-76,-1,-20,-1,36,0,92,0,-115,0,-50,0,0,1,55,1,111,1,-91,1,-30,1,18,2,81,2,-123,2,-71,2,-15,2,37,3,96,3,-115,3,-55,3,-7,3,42,4,91,4,-112,4,-66,4,-20,4,28,5,72,5,116,5,-101,5,-57,5,-16,5,17,6,60,6,93,6,124,6,-94,6,-69,6,-37,6,-14,6,16,7,35,7,60,7,77,7,100,7,108,7,-128,7,-117,7,-109,7,-97,7,-94,7,-88,7,-85,7,-86,7,-86,7,-90,7,-95,7,-103,7,-110,7,-122,7,123,7,105,7,93,7,73,7,55,7,31,7,12,7,-15,6,-38,6,-69,6,-93,6,127,6,101,6,64,6,36,6,-5,5,-37,5,-77,5,-114,5,100,5,64,5,23,5,-21,4,-63,4,-105,4,104,4,61,4,18,4,-26,3,-77,3,-121,3,91,3,38,3,-4,2,-55,2,-100,2,103,2,63,2,11,2,-35,1,-86,1,-128,1,71,1,31,1,-21,0,-60,0,-117,0,97,0,51,0,0,0,-44,-1,-87,-1,122,-1,76,-1,32,-1,-15,-2,-55,-2,-107,-2,116,-2,68,-2,25,-2,-17,-3,-57,-3,-102,-3,115,-3,74,-3,38,-3,-8,-4,-42,-4,-84,-4,-120,-4,95,-4,61,-4,27,-4,-15,-5,-46,-5,-84,-5,-116,-5,102,-5,75,-5,40,-5,5,-5,-21,-6,-56,-6,-83,-6,-115,-6,115,-6,89,-6,58,-6,36,-6,8,-6,-14,-7,-40,-7,-60,-7,-81,-7,-104,-7,-120,-7,115,-7,99,-7,83,-7,68,-7,54,-7,42,-7,31,-7,22,-7,11,-7,7,-7,-2,-8,-3,-8,-8,-8,-8,-8,-10,-8,-7,-8,-4,-8,0,-7,9,-7,14,-7,25,-7,33,-7,51,-7,61,-7,79,-7,99,-7,115,-7,-118,-7,-98,-7,-70,-7,-45,-7,-18,-7,13,-6,43,-6,75,-6,109,-6,-110,-6,-72,-6,-38,-6,9,-5,48,-5,89,-5,-122,-5,-76,-5,-27,-5,16,-4,73,-4,117,-4,-84,-4,-38,-4,24,-3,71,-3,-126,-3,-71,-3,-14,-3,42,-2,95,-2,-97,-2,-41,-2,16,-1,78,-1,-119,-1,-65,-1,2,0,57,0,113,0,-82,0,-24,0,35,1,90,1,-105,1,-51,1,5,2,55,2,119,2,-92,2,-34,2,15,3,68,3,116,3,-96,3,-41,3,-1,3,46,4,92,4,-125,4,-82,4,-49,4,-3,4,28,5,64,5,102,5,126,5,-91,5,-75,5,-34,5,-18,5,9,6,33,6,49,6,73,6,85,6,105,6,117,6,-126,6,-115,6,-106,6,-97,6,-95,6,-84,6,-87,6,-79,6,-86,6,-79,6,-89,6,-89,6,-94,6,-104,6,-106,6,-122,6,-127,6,114,6,103,6,90,6,72,6,61,6,37,6,25,6,3,6,-17,5,-38,5,-59,5,-81,5,-105,5,125,5,102,5,74,5,49,5,22,5,-5,4,-36,4,-64,4,-93,4,-126,4,101,4,69,4,39,4,3,4,-29,3,-60,3,-99,3,126,3,89,3,58,3,17,3,-17,2,-52,2,-94,2,127,2,91,2,52,2,15,2,-29,1,-61,1,-108,1,111,1,74,1,33,1,-11,0,-50,0,-89,0,121,0,83,0,40,0,1,0,-45,-1,-85,-1,-127,-1,87,-1,39,-1,6,-1,-43,-2,-81,-2,127,-2,92,-2,41,-2,6,-2,-39,-3,-77,-3,-123,-3,95,-3,52,-3,14,-3,-32,-4,-63,-4,-111,-4,110,-4,74,-4,34,-4,-1,-5,-40,-5,-73,-5,-109,-5,111,-5,83,-5,46,-5,18,-5,-15,-6,-43,-6,-71,-6,-101,-6,-123,-6,106,-6,82,-6,60,-6,38,-6,20,-6,-3,-7,-14,-7,-36,-7,-44,-7,-64,-7,-70,-7,-84,-7,-89,-7,-99,-7,-102,-7,-109,-7,-108,-7,-111,-7,-110,-7,-107,-7,-104,-7,-99,-7,-89,-7,-86,-7,-68,-7,-65,-7,-44,-7,-35,-7,-17,-7,2,-6,19,-6,41,-6,62,-6,89,-6,107,-6,-118,-6,-95,-6,-61,-6,-37,-6,0,-5,27,-5,62,-5,97,-5,-125,-5,-89,-5,-54,-5,-12,-5,22,-4,64,-4}; }
	private static byte[] data9(){ return new byte[] {103,-4,-109,-4,-73,-4,-30,-4,14,-3,56,-3,98,-3,-110,-3,-72,-3,-22,-3,13,-2,68,-2,105,-2,-101,-2,-61,-2,-10,-2,28,-1,73,-1,122,-1,-95,-1,-48,-1,-3,-1,39,0,81,0,122,0,-88,0,-47,0,-7,0,37,1,75,1,117,1,-105,1,-60,1,-23,1,10,2,55,2,86,2,123,2,-100,2,-61,2,-33,2,5,3,35,3,67,3,100,3,122,3,-94,3,-74,3,-42,3,-15,3,13,4,33,4,62,4,83,4,110,4,-128,4,-102,4,-84,4,-63,4,-42,4,-27,4,-7,4,6,5,27,5,39,5,53,5,69,5,78,5,93,5,101,5,113,5,120,5,-124,5,-121,5,-111,5,-107,5,-104,5,-96,5,-97,5,-94,5,-92,5,-94,5,-93,5,-97,5,-97,5,-105,5,-107,5,-114,5,-122,5,-127,5,117,5,108,5,96,5,86,5,68,5,59,5,39,5,27,5,6,5,-12,4,-32,4,-53,4,-76,4,-98,4,-118,4,104,4,85,4,53,4,27,4,-4,3,-33,3,-65,3,-95,3,120,3,97,3,50,3,19,3,-15,2,-62,2,-93,2,120,2,84,2,37,2,0,2,-44,1,-89,1,126,1,79,1,42,1,-11,0,-54,0,-96,0,107,0,65,0,19,0,-27,-1,-76,-1,-122,-1,90,-1,38,-1,-5,-2,-52,-2,-96,-2,112,-2,65,-2,25,-2,-28,-3,-63,-3,-116,-3,110,-3,52,-3,23,-3,-25,-4,-64,-4,-103,-4,116,-4,77,-4,41,-4,5,-4,-30,-5,-61,-5,-99,-5,-124,-5,100,-5,70,-5,43,-5,19,-5,-10,-6,-32,-6,-54,-6,-74,-6,-93,-6,-115,-6,-127,-6,109,-6,98,-6,84,-6,75,-6,65,-6,54,-6,51,-6,41,-6,42,-6,36,-6,36,-6,37,-6,37,-6,43,-6,44,-6,51,-6,60,-6,64,-6,78,-6,87,-6,98,-6,114,-6,124,-6,-112,-6,-98,-6,-78,-6,-61,-6,-43,-6,-17,-6,0,-5,24,-5,50,-5,71,-5,100,-5,121,-5,-103,-5,-79,-5,-48,-5,-22,-5,13,-4,36,-4,73,-4,99,-4,-120,-4,-92,-4,-56,-4,-22,-4,8,-3,43,-3,79,-3,113,-3,-111,-3,-68,-3,-39,-3,-3,-3,35,-2,68,-2,109,-2,-115,-2,-75,-2,-41,-2,-2,-2,28,-1,74,-1,104,-1,-113,-1,-76,-1,-38,-1,-6,-1,37,0,69,0,106,0,-117,0,-75,0,-46,0,-5,0,27,1,64,1,98,1,-127,1,-87,1,-56,1,-24,1,13,2,44,2,77,2,107,2,-116,2,-82,2,-57,2,-20,2,6,3,35,3,65,3,93,3,120,3,-106,3,-85,3,-51,3,-35,3,-4,3,17,4,42,4,62,4,85,4,107,4,125,4,-112,4,-92,4,-76,4,-59,4,-42,4,-30,4,-13,4,-4,4,11,5,21,5,28,5,42,5,45,5,55,5,57,5,64,5,66,5,69,5,70,5,69,5,69,5,66,5,62,5,59,5,50,5,48,5,33,5,31,5,14,5,6,5,-8,4,-20,4,-39,4,-50,4,-72,4,-88,4,-109,4,-127,4,106,4,85,4,57,4,38,4,9,4,-18,3,-41,3,-73,3,-101,3,125,3,95,3,63,3,30,3,-1,2,-35,2,-69,2,-105,2,119,2,79,2,45,2,8,2,-26,1,-68,1,-103,1,116,1,74,1,38,1,-1,0,-38,0,-77,0,-120,0,105,0,56,0,25,0,-16,-1,-52,-1,-95,-1,127,-1,88,-1,49,-1,14,-1,-25,-2,-58,-2,-97,-2,125,-2,89,-2,56,-2,16,-2,-8,-3,-47,-3,-77,-3,-111,-3,117,-3,83,-3,57,-3,25,-3,-2,-4,-32,-4,-54,-4,-82,-4,-107,-4,123,-4,102,-4,77,-4,56,-4,36,-4,15,-4,-4,-5,-23,-5,-39,-5,-58,-5,-72,-5,-89,-5,-99,-5,-117,-5,-125,-5,118,-5,105,-5,99,-5,87,-5,84,-5,73,-5,68,-5,64,-5,57,-5,57,-5,52,-5,52,-5,51,-5,50,-5,53,-5,52,-5,58,-5,59,-5,64,-5,70,-5,76,-5,82,-5,91,-5,97,-5,111,-5,115,-5,-123,-5,-117,-5,-102,-5,-88,-5,-75,-5,-58,-5,-47,-5,-23,-5,-15,-5,13,-4,22,-4,52,-4,62,-4,92,-4,108,-4,-124,-4,-102,-4,-78,-4,-50,-4,-32,-4,2,-3,21,-3,53,-3,76,-3,108,-3,-120,-3,-94,-3,-59,-3,-32,-3,-1,-3,30,-2,62,-2,96,-2,124,-2,-93,-2,-62,-2,-31,-2,6,-1,38,-1,76,-1,106,-1,-109,-1,-77,-1,-41,-1,-7,-1,30,0,66,0,101,0,-118,0,-81,0,-48,0,-14,0,28,1,57,1,96,1,-126,1,-90,1,-58,1,-22,1,10,2,47,2,74,2,114,2,-114,2,-82,2,-52,2,-21,2,10,3,38,3,68,3,95,3,122,3,-110,3,-81,3,-57,3,-36,3,-8,3,9,4,34,4,53,4,72,4,91,4,104,4,127,4,-119,4,-103,4,-89,4,-80,4,-66,4,-58,4,-50,4}; }
	private static byte[] data10(){ return new byte[] {-41,4,-36,4,-30,4,-25,4,-24,4,-20,4,-23,4,-19,4,-25,4,-23,4,-32,4,-32,4,-43,4,-46,4,-57,4,-67,4,-74,4,-90,4,-98,4,-116,4,-127,4,110,4,98,4,75,4,60,4,40,4,20,4,0,4,-26,3,-43,3,-71,3,-96,3,-114,3,108,3,88,3,56,3,33,3,0,3,-25,2,-57,2,-83,2,-117,2,110,2,79,2,46,2,15,2,-17,1,-51,1,-82,1,-118,1,112,1,71,1,41,1,8,1,-29,0,-62,0,-92,0,127,0,94,0,59,0,28,0,-8,-1,-43,-1,-72,-1,-108,-1,118,-1,80,-1,54,-1,15,-1,-13,-2,-45,-2,-76,-2,-108,-2,118,-2,89,-2,55,-2,30,-2,-1,-3,-28,-3,-56,-3,-87,-3,-107,-3,116,-3,91,-3,71,-3,40,-3,22,-3,-8,-4,-25,-4,-51,-4,-72,-4,-90,-4,-113,-4,126,-4,104,-4,89,-4,70,-4,54,-4,38,-4,25,-4,8,-4,-4,-5,-16,-5,-30,-5,-39,-5,-50,-5,-58,-5,-68,-5,-76,-5,-80,-5,-90,-5,-92,-5,-97,-5,-103,-5,-99,-5,-109,-5,-102,-5,-106,-5,-106,-5,-99,-5,-103,-5,-91,-5,-95,-5,-82,-5,-83,-5,-70,-5,-64,-5,-55,-5,-46,-5,-32,-5,-28,-5,-5,-5,-2,-5,19,-4,29,-4,50,-4,61,-4,80,-4,99,-4,117,-4,-122,-4,-96,-4,-82,-4,-54,-4,-39,-4,-10,-4,10,-3,35,-3,62,-3,84,-3,112,-3,-121,-3,-90,-3,-64,-3,-38,-3,-6,-3,20,-2,49,-2,79,-2,108,-2,-116,-2,-87,-2,-57,-2,-21,-2,2,-1,38,-1,69,-1,101,-1,-125,-1,-90,-1,-61,-1,-27,-1,3,0,38,0,66,0,99,0,-126,0,-93,0,-65,0,-30,0,-1,0,30,1,57,1,91,1,118,1,-108,1,-76,1,-52,1,-21,1,2,2,33,2,62,2,80,2,115,2,-122,2,-98,2,-70,2,-52,2,-25,2,-6,2,17,3,38,3,55,3,75,3,96,3,110,3,-125,3,-114,3,-94,3,-81,3,-69,3,-54,3,-41,3,-34,3,-18,3,-10,3,-4,3,8,4,11,4,21,4,25,4,30,4,34,4,35,4,41,4,37,4,43,4,38,4,41,4,34,4,36,4,28,4,27,4,20,4,12,4,9,4,-3,3,-8,3,-19,3,-32,3,-36,3,-56,3,-59,3,-81,3,-88,3,-109,3,-119,3,118,3,105,3,85,3,66,3,52,3,27,3,12,3,-10,2,-31,2,-50,2,-78,2,-91,2,-124,2,115,2,88,2,68,2,37,2,18,2,-12,1,-37,1,-62,1,-91,1,-113,1,110,1,86,1,57,1,30,1,-2,0,-25,0,-56,0,-85,0,-113,0,114,0,83,0,55,0,27,0,-2,-1,-33,-1,-61,-1,-90,-1,-119,-1,105,-1,81,-1,49,-1,24,-1,-9,-2,-33,-2,-64,-2,-92,-2,-117,-2,113,-2,82,-2,60,-2,31,-2,4,-2,-19,-3,-44,-3,-71,-3,-91,-3,-120,-3,120,-3,91,-3,73,-3,50,-3,30,-3,7,-3,-9,-4,-28,-4,-50,-4,-63,-4,-86,-4,-96,-4,-117,-4,-127,-4,110,-4,100,-4,85,-4,76,-4,61,-4,54,-4,41,-4,37,-4,24,-4,21,-4,11,-4,9,-4,2,-4,0,-4,-5,-5,-5,-5,-9,-5,-6,-5,-8,-5,-6,-5,-2,-5,-3,-5,6,-4,6,-4,13,-4,22,-4,27,-4,36,-4,43,-4,55,-4,63,-4,79,-4,86,-4,103,-4,114,-4,127,-4,-108,-4,-99,-4,-76,-4,-63,-4,-42,-4,-27,-4,-2,-4,13,-3,37,-3,54,-3,80,-3,102,-3,120,-3,-104,-3,-89,-3,-56,-3,-39,-3,-9,-3,16,-2,40,-2,71,-2,96,-2,122,-2,-107,-2,-77,-2,-47,-2,-22,-2,11,-1,40,-1,63,-1,100,-1,121,-1,-98,-1,-77,-1,-41,-1,-17,-1,14,0,37,0,71,0,95,0,123,0,-102,0,-79,0,-49,0,-23,0,2,1,33,1,54,1,85,1,110,1,-123,1,-98,1,-72,1,-47,1,-25,1,2,2,22,2,46,2,65,2,92,2,108,2,-123,2,-106,2,-84,2,-67,2,-49,2,-30,2,-13,2,3,3,19,3,37,3,45,3,68,3,73,3,90,3,100,3,110,3,125,3,-127,3,-115,3,-107,3,-101,3,-94,3,-86,3,-85,3,-77,3,-76,3,-71,3,-71,3,-68,3,-69,3,-69,3,-69,3,-73,3,-75,3,-76,3,-84,3,-84,3,-97,3,-95,3,-111,3,-111,3,-125,3,126,3,111,3,104,3,90,3,80,3,65,3,53,3,40,3,21,3,10,3,-9,2,-24,2,-43,2,-59,2,-79,2,-96,2,-116,2,118,2,101,2,74,2,61,2,34,2,12,2,-8,1,-35,1,-55,1,-81,1,-104,1,126,1,103,1,76,1,55,1,27,1,-2,0,-18,0,-58,0,-72,0,-105,0,-127,0,100,0,75,0,46,0,23,0,-8,-1,-30,-1,-57,-1,-86,-1,-110,-1,120,-1,92,-1,67,-1,42,-1}; }
	private static byte[] data11(){ return new byte[] {18,-1,-10,-2,-33,-2,-59,-2,-84,-2,-106,-2,123,-2,105,-2,76,-2,56,-2,35,-2,9,-2,-9,-3,-32,-3,-51,-3,-71,-3,-93,-3,-108,-3,123,-3,111,-3,89,-3,78,-3,55,-3,43,-3,27,-3,11,-3,0,-3,-17,-4,-24,-4,-43,-4,-49,-4,-61,-4,-73,-4,-80,-4,-89,-4,-97,-4,-104,-4,-110,-4,-118,-4,-120,-4,-126,-4,126,-4,127,-4,117,-4,127,-4,114,-4,124,-4,120,-4,122,-4,126,-4,-127,-4,-127,-4,-116,-4,-118,-4,-106,-4,-103,-4,-94,-4,-86,-4,-78,-4,-69,-4,-57,-4,-48,-4,-37,-4,-22,-4,-14,-4,5,-3,12,-3,33,-3,44,-3,60,-3,79,-3,92,-3,113,-3,127,-3,-109,-3,-89,-3,-73,-3,-49,-3,-31,-3,-12,-3,11,-2,31,-2,53,-2,77,-2,96,-2,124,-2,-116,-2,-88,-2,-67,-2,-39,-2,-22,-2,10,-1,29,-1,56,-1,78,-1,105,-1,-126,-1,-104,-1,-73,-1,-54,-1,-25,-1,-2,-1,27,0,45,0,76,0,97,0,124,0,-108,0,-83,0,-60,0,-34,0,-13,0,12,1,39,1,54,1,87,1,102,1,-128,1,-109,1,-84,1,-65,1,-45,1,-21,1,-3,1,16,2,36,2,54,2,72,2,92,2,106,2,126,2,-116,2,-101,2,-84,2,-71,2,-56,2,-45,2,-26,2,-23,2,-3,2,1,3,16,3,23,3,33,3,41,3,50,3,53,3,64,3,65,3,74,3,76,3,80,3,82,3,85,3,87,3,87,3,86,3,88,3,83,3,85,3,79,3,78,3,72,3,69,3,61,3,58,3,49,3,43,3,32,3,27,3,16,3,6,3,-4,2,-17,2,-26,2,-43,2,-50,2,-68,2,-80,2,-95,2,-112,2,-124,2,110,2,100,2,79,2,61,2,46,2,24,2,7,2,-13,1,-34,1,-49,1,-77,1,-90,1,-117,1,120,1,97,1,76,1,57,1,28,1,11,1,-15,0,-37,0,-60,0,-85,0,-104,0,124,0,103,0,78,0,54,0,31,0,7,0,-14,-1,-42,-1,-64,-1,-84,-1,-115,-1,124,-1,99,-1,76,-1,53,-1,30,-1,8,-1,-13,-2,-39,-2,-56,-2,-81,-2,-99,-2,-122,-2,114,-2,93,-2,74,-2,53,-2,37,-2,14,-2,-1,-3,-19,-3,-36,-3,-56,-3,-68,-3,-88,-3,-102,-3,-115,-3,125,-3,112,-3,96,-3,88,-3,70,-3,64,-3,50,-3,39,-3,33,-3,18,-3,15,-3,4,-3,-5,-4,-6,-4,-19,-4,-18,-4,-28,-4,-28,-4,-35,-4,-36,-4,-37,-4,-41,-4,-41,-4,-40,-4,-42,-4,-37,-4,-40,-4,-34,-4,-33,-4,-29,-4,-22,-4,-23,-4,-9,-4,-10,-4,0,-3,8,-3,13,-3,27,-3,30,-3,46,-3,52,-3,65,-3,76,-3,88,-3,102,-3,112,-3,-126,-3,-114,-3,-99,-3,-83,-3,-68,-3,-52,-3,-36,-3,-17,-3,-2,-3,18,-2,34,-2,55,-2,73,-2,90,-2,114,-2,-127,-2,-103,-2,-85,-2,-61,-2,-43,-2,-23,-2,2,-1,21,-1,42,-1,69,-1,84,-1,113,-1,127,-1,-99,-1,-80,-1,-59,-1,-32,-1,-14,-1,11,0,31,0,55,0,77,0,99,0,123,0,-114,0,-90,0,-72,0,-45,0,-28,0,-4,0,13,1,40,1,53,1,79,1,94,1,117,1,-121,1,-103,1,-81,1,-69,1,-45,1,-33,1,-11,1,0,2,22,2,34,2,49,2,66,2,77,2,95,2,104,2,119,2,-124,2,-114,2,-102,2,-91,2,-83,2,-72,2,-63,2,-56,2,-47,2,-41,2,-33,2,-29,2,-22,2,-19,2,-14,2,-10,2,-8,2,-5,2,-5,2,-2,2,-3,2,-3,2,-2,2,-9,2,-4,2,-12,2,-13,2,-17,2,-23,2,-27,2,-33,2,-39,2,-49,2,-50,2,-65,2,-68,2,-82,2,-89,2,-101,2,-109,2,-123,2,123,2,108,2,98,2,83,2,69,2,56,2,41,2,25,2,10,2,-6,1,-23,1,-40,1,-55,1,-74,1,-92,1,-111,1,-125,1,104,1,94,1,68,1,51,1,32,1,8,1,-4,0,-33,0,-49,0,-69,0,-94,0,-111,0,122,0,103,0,80,0,59,0,40,0,14,0,-2,-1,-28,-1,-43,-1,-70,-1,-87,-1,-111,-1,126,-1,104,-1,86,-1,64,-1,43,-1,25,-1,2,-1,-13,-2,-38,-2,-51,-2,-74,-2,-90,-2,-112,-2,-124,-2,108,-2,95,-2,77,-2,61,-2,44,-2,28,-2,13,-2,0,-2,-19,-3,-28,-3,-44,-3,-58,-3,-68,-3,-83,-3,-92,-3,-107,-3,-111,-3,127,-3,124,-3,111,-3,104,-3,95,-3,89,-3,80,-3,78,-3,66,-3,67,-3,58,-3,57,-3,50,-3,51,-3,47,-3,45,-3,46,-3,42,-3,46,-3,43,-3,47,-3,47,-3,53,-3,51,-3,59,-3,58,-3,70,-3,67,-3,82,-3,79,-3,95,-3,94,-3,110,-3,112,-3,124,-3,-120,-3,-115,-3,-99,-3,-93,-3,-79,-3,-65,-3,-56,-3,-41,-3}; }
	private static byte[] data12(){ return new byte[] {-27,-3,-15,-3,-2,-3,19,-2,24,-2,51,-2,56,-2,80,-2,93,-2,107,-2,-124,-2,-115,-2,-93,-2,-74,-2,-60,-2,-36,-2,-24,-2,0,-1,18,-1,35,-1,57,-1,76,-1,93,-1,118,-1,-125,-1,-98,-1,-85,-1,-59,-1,-41,-1,-22,-1,0,0,20,0,37,0,61,0,77,0,100,0,118,0,-118,0,-97,0,-80,0,-61,0,-40,0,-23,0,-3,0,14,1,34,1,50,1,67,1,87,1,102,1,119,1,-120,1,-103,1,-90,1,-73,1,-58,1,-45,1,-27,1,-18,1,0,2,10,2,21,2,38,2,44,2,60,2,68,2,79,2,89,2,95,2,110,2,111,2,125,2,-128,2,-119,2,-115,2,-108,2,-104,2,-98,2,-96,2,-91,2,-89,2,-87,2,-84,2,-86,2,-80,2,-86,2,-81,2,-86,2,-87,2,-87,2,-93,2,-92,2,-100,2,-102,2,-108,2,-114,2,-117,2,-128,2,126,2,115,2,107,2,101,2,90,2,81,2,71,2,60,2,51,2,39,2,25,2,17,2,0,2,-10,1,-25,1,-36,1,-54,1,-66,1,-81,1,-98,1,-111,1,127,1,113,1,95,1,79,1,63,1,43,1,29,1,7,1,-2,0,-31,0,-40,0,-65,0,-79,0,-101,0,-115,0,116,0,105,0,77,0,68,0,39,0,27,0,5,0,-12,-1,-33,-1,-50,-1,-70,-1,-89,-1,-108,-1,-126,-1,114,-1,92,-1,76,-1,56,-1,41,-1,19,-1,8,-1,-15,-2,-28,-2,-48,-2,-62,-2,-80,-2,-94,-2,-113,-2,-123,-2,111,-2,104,-2,84,-2,74,-2,58,-2,45,-2,35,-2,17,-2,13,-2,-6,-3,-12,-3,-27,-3,-33,-3,-44,-3,-56,-3,-61,-3,-72,-3,-79,-3,-86,-3,-92,-3,-101,-3,-105,-3,-110,-3,-117,-3,-118,-3,-126,-3,-126,-3,127,-3,122,-3,124,-3,119,-3,121,-3,120,-3,120,-3,122,-3,122,-3,125,-3,126,-3,-125,-3,-123,-3,-118,-3,-115,-3,-107,-3,-106,-3,-95,-3,-94,-3,-81,-3,-79,-3,-66,-3,-63,-3,-48,-3,-46,-3,-29,-3,-25,-3,-10,-3,-1,-3,11,-2,23,-2,34,-2,49,-2,59,-2,74,-2,87,-2,102,-2,115,-2,-127,-2,-108,-2,-99,-2,-79,-2,-65,-2,-50,-2,-31,-2,-18,-2,3,-1,15,-1,34,-1,51,-1,69,-1,85,-1,104,-1,121,-1,-118,-1,-99,-1,-82,-1,-65,-1,-45,-1,-28,-1,-9,-1,8,0,23,0,47,0,60,0,79,0,99,0,112,0,-119,0,-113,0,-84,0,-76,0,-53,0,-40,0,-19,0,-9,0,12,1,25,1,42,1,58,1,72,1,89,1,99,1,117,1,-128,1,-110,1,-102,1,-85,1,-74,1,-63,1,-49,1,-40,1,-28,1,-16,1,-8,1,4,2,12,2,21,2,30,2,38,2,44,2,53,2,59,2,65,2,70,2,78,2,77,2,89,2,85,2,95,2,92,2,98,2,98,2,102,2,98,2,104,2,97,2,104,2,95,2,101,2,91,2,96,2,87,2,86,2,81,2,77,2,70,2,68,2,60,2,52,2,49,2,36,2,34,2,21,2,17,2,3,2,-2,1,-17,1,-21,1,-38,1,-44,1,-59,1,-69,1,-81,1,-95,1,-105,1,-121,1,122,1,109,1,96,1,80,1,67,1,50,1,38,1,18,1,8,1,-12,0,-26,0,-41,0,-59,0,-74,0,-91,0,-108,0,-123,0,113,0,100,0,82,0,63,0,49,0,30,0,13,0,-3,-1,-21,-1,-36,-1,-55,-1,-71,-1,-87,-1,-106,-1,-120,-1,117,-1,105,-1,83,-1,73,-1,52,-1,41,-1,19,-1,11,-1,-8,-2,-22,-2,-36,-2,-52,-2,-66,-2,-77,-2,-94,-2,-104,-2,-121,-2,127,-2,111,-2,102,-2,87,-2,78,-2,69,-2,54,-2,48,-2,36,-2,26,-2,19,-2,11,-2,0,-2,-4,-3,-16,-3,-18,-3,-28,-3,-30,-3,-41,-3,-40,-3,-50,-3,-51,-3,-54,-3,-61,-3,-58,-3,-68,-3,-61,-3,-71,-3,-64,-3,-71,-3,-65,-3,-70,-3,-64,-3,-66,-3,-62,-3,-60,-3,-59,-3,-52,-3,-53,-3,-43,-3,-44,-3,-33,-3,-33,-3,-23,-3,-20,-3,-11,-3,-2,-3,2,-2,14,-2,19,-2,28,-2,41,-2,47,-2,58,-2,70,-2,78,-2,92,-2,101,-2,113,-2,-128,-2,-122,-2,-101,-2,-95,-2,-78,-2,-67,-2,-52,-2,-38,-2,-24,-2,-10,-2,6,-1,18,-1,35,-1,50,-1,64,-1,80,-1,97,-1,110,-1,-126,-1,-118,-1,-94,-1,-82,-1,-67,-1,-46,-1,-35,-1,-16,-1,-1,-1,16,0,31,0,47,0,64,0,79,0,94,0,112,0,126,0,-114,0,-100,0,-83,0,-70,0,-52,0,-41,0,-22,0,-13,0,5,1,16,1,33,1,43,1,60,1,68,1,86,1,92,1,110,1,117,1,-124,1,-115,1,-103,1,-94,1,-84,1,-73,1,-65,1,-55,1,-47,1,-39,1,-30,1,-26,1,-14,1,-12,1}; }
	private static byte[] data13(){ return new byte[] {-4,1,4,2,4,2,14,2,15,2,20,2,26,2,25,2,30,2,32,2,34,2,35,2,37,2,36,2,36,2,37,2,35,2,34,2,33,2,30,2,26,2,28,2,16,2,22,2,8,2,12,2,-1,1,0,2,-12,1,-13,1,-23,1,-29,1,-38,1,-45,1,-53,1,-62,1,-70,1,-82,1,-89,1,-101,1,-111,1,-120,1,122,1,114,1,99,1,91,1,75,1,64,1,52,1,39,1,26,1,12,1,-1,0,-16,0,-28,0,-44,0,-56,0,-72,0,-86,0,-100,0,-117,0,126,0,111,0,96,0,81,0,64,0,53,0,31,0,24,0,0,0,-5,-1,-30,-1,-39,-1,-56,-1,-71,-1,-87,-1,-100,-1,-115,-1,126,-1,110,-1,98,-1,82,-1,68,-1,55,-1,42,-1,24,-1,18,-1,-3,-2,-11,-2,-25,-2,-39,-2,-48,-2,-65,-2,-71,-2,-86,-2,-95,-2,-108,-2,-118,-2,-127,-2,119,-2,107,-2,103,-2,87,-2,85,-2,72,-2,68,-2,57,-2,53,-2,45,-2,38,-2,33,-2,28,-2,22,-2,17,-2,14,-2,8,-2,7,-2,3,-2,-1,-3,0,-2,-7,-3,-3,-3,-8,-3,-5,-3,-9,-3,-6,-3,-6,-3,-5,-3,-2,-3,-4,-3,3,-2,1,-2,11,-2,7,-2,18,-2,15,-2,27,-2,27,-2,37,-2,38,-2,48,-2,55,-2,59,-2,69,-2,75,-2,85,-2,93,-2,100,-2,113,-2,117,-2,-123,-2,-118,-2,-105,-2,-95,-2,-84,-2,-73,-2,-64,-2,-45,-2,-44,-2,-19,-2,-20,-2,2,-1,12,-1,24,-1,38,-1,52,-1,63,-1,79,-1,93,-1,104,-1,120,-1,-121,-1,-110,-1,-91,-1,-84,-1,-62,-1,-53,-1,-35,-1,-24,-1,-6,-1,4,0,23,0,34,0,50,0,63,0,77,0,95,0,103,0,121,0,-123,0,-109,0,-94,0,-84,0,-66,0,-57,0,-42,0,-31,0,-16,0,-8,0,11,1,16,1,33,1,39,1,55,1,63,1,74,1,86,1,94,1,105,1,114,1,122,1,-123,1,-117,1,-106,1,-100,1,-92,1,-85,1,-78,1,-71,1,-67,1,-59,1,-54,1,-52,1,-42,1,-44,1,-36,1,-33,1,-33,1,-26,1,-28,1,-24,1,-22,1,-23,1,-20,1,-22,1,-20,1,-24,1,-20,1,-27,1,-23,1,-30,1,-30,1,-33,1,-37,1,-41,1,-44,1,-49,1,-55,1,-57,1,-67,1,-68,1,-78,1,-83,1,-92,1,-95,1,-108,1,-110,1,-124,1,127,1,116,1,109,1,99,1,87,1,81,1,66,1,61,1,44,1,38,1,26,1,12,1,4,1,-12,0,-21,0,-34,0,-47,0,-58,0,-75,0,-81,0,-100,0,-109,0,-124,0,118,0,107,0,91,0,79,0,67,0,49,0,40,0,24,0,10,0,-1,-1,-19,-1,-27,-1,-46,-1,-55,-1,-71,-1,-84,-1,-97,-1,-110,-1,-122,-1,119,-1,107,-1,95,-1,81,-1,70,-1,56,-1,47,-1,33,-1,20,-1,13,-1,-6,-2,-8,-2,-26,-2,-31,-2,-46,-2,-53,-2,-65,-2,-74,-2,-82,-2,-93,-2,-98,-2,-112,-2,-115,-2,-126,-2,125,-2,114,-2,112,-2,102,-2,98,-2,91,-2,86,-2,79,-2,79,-2,68,-2,70,-2,64,-2,57,-2,64,-2,48,-2,59,-2,46,-2,52,-2,48,-2,48,-2,47,-2,49,-2,46,-2,51,-2,48,-2,53,-2,53,-2,56,-2,59,-2,61,-2,65,-2,69,-2,73,-2,77,-2,83,-2,86,-2,94,-2,98,-2,106,-2,111,-2,118,-2,126,-2,-124,-2,-114,-2,-109,-2,-98,-2,-91,-2,-80,-2,-75,-2,-61,-2,-55,-2,-43,-2,-34,-2,-21,-2,-15,-2,0,-1,8,-1,20,-1,33,-1,41,-1,58,-1,65,-1,78,-1,92,-1,100,-1,118,-1,127,-1,-115,-1,-104,-1,-92,-1,-76,-1,-66,-1,-51,-1,-42,-1,-23,-1,-17,-1,3,0,11,0,25,0,38,0,49,0,66,0,74,0,90,0,101,0,113,0,125,0,-117,0,-107,0,-94,0,-81,0,-72,0,-58,0,-50,0,-34,0,-29,0,-13,0,-5,0,4,1,20,1,19,1,42,1,38,1,58,1,60,1,73,1,78,1,87,1,96,1,102,1,109,1,118,1,121,1,-124,1,-124,1,-113,1,-111,1,-105,1,-100,1,-97,1,-92,1,-88,1,-87,1,-82,1,-80,1,-79,1,-75,1,-76,1,-73,1,-73,1,-73,1,-72,1,-74,1,-72,1,-76,1,-75,1,-78,1,-80,1,-82,1,-86,1,-87,1,-93,1,-95,1,-101,1,-103,1,-110,1,-113,1,-122,1,-123,1,123,1,119,1,111,1,104,1,98,1,90,1,81,1,75,1,64,1,58,1,48,1,38,1,31,1,20,1,10,1,1,1,-11,0,-17,0,-33,0,-39,0,-54,0,-61,0,-76,0,-84,0,-97,0,-109,0,-120,0,126,0,110,0,103,0,85,0,80,0,64,0,52,0,41,0,27,0,16,0,5,0,-9,-1}; }
	private static byte[] data14(){ return new byte[] {-20,-1,-34,-1,-43,-1,-59,-1,-67,-1,-82,-1,-92,-1,-104,-1,-117,-1,-126,-1,116,-1,106,-1,94,-1,85,-1,71,-1,63,-1,52,-1,40,-1,31,-1,21,-1,10,-1,1,-1,-6,-2,-19,-2,-25,-2,-35,-2,-44,-2,-50,-2,-61,-2,-65,-2,-76,-2,-80,-2,-90,-2,-93,-2,-102,-2,-107,-2,-113,-2,-118,-2,-123,-2,-127,-2,122,-2,122,-2,113,-2,115,-2,108,-2,107,-2,105,-2,100,-2,103,-2,96,-2,99,-2,97,-2,95,-2,98,-2,95,-2,98,-2,97,-2,100,-2,100,-2,104,-2,102,-2,111,-2,107,-2,117,-2,114,-2,124,-2,121,-2,-122,-2,-125,-2,-114,-2,-113,-2,-104,-2,-101,-2,-92,-2,-88,-2,-79,-2,-73,-2,-65,-2,-59,-2,-49,-2,-43,-2,-32,-2,-27,-2,-15,-2,-8,-2,0,-1,14,-1,18,-1,33,-1,37,-1,53,-1,58,-1,72,-1,82,-1,91,-1,103,-1,113,-1,125,-1,-120,-1,-110,-1,-98,-1,-86,-1,-76,-1,-63,-1,-54,-1,-39,-1,-32,-1,-16,-1,-6,-1,3,0,20,0,24,0,43,0,49,0,62,0,76,0,82,0,98,0,105,0,120,0,126,0,-113,0,-109,0,-93,0,-87,0,-74,0,-65,0,-56,0,-44,0,-37,0,-25,0,-20,0,-7,0,0,1,8,1,18,1,24,1,33,1,41,1,47,1,55,1,61,1,69,1,73,1,83,1,83,1,94,1,96,1,100,1,109,1,107,1,117,1,116,1,123,1,123,1,-128,1,-128,1,-123,1,-124,1,-121,1,-118,1,-123,1,-115,1,-122,1,-117,1,-120,1,-119,1,-123,1,-121,1,-125,1,-126,1,127,1,125,1,121,1,118,1,117,1,109,1,108,1,102,1,97,1,94,1,86,1,83,1,75,1,71,1,62,1,58,1,49,1,43,1,36,1,28,1,19,1,14,1,2,1,-4,0,-13,0,-22,0,-31,0,-38,0,-54,0,-54,0,-72,0,-76,0,-90,0,-96,0,-112,0,-115,0,123,0,120,0,103,0,99,0,82,0,73,0,64,0,52,0,42,0,31,0,18,0,10,0,-4,-1,-11,-1,-26,-1,-32,-1,-48,-1,-55,-1,-67,-1,-80,-1,-85,-1,-101,-1,-107,-1,-121,-1,127,-1,117,-1,104,-1,100,-1,85,-1,79,-1,67,-1,60,-1,49,-1,42,-1,31,-1,26,-1,14,-1,8,-1,1,-1,-11,-2,-12,-2,-26,-2,-27,-2,-38,-2,-42,-2,-49,-2,-55,-2,-61,-2,-67,-2,-71,-2,-75,-2,-83,-2,-83,-2,-93,-2,-90,-2,-99,-2,-98,-2,-105,-2,-105,-2,-108,-2,-109,-2,-114,-2,-111,-2,-117,-2,-113,-2,-117,-2,-115,-2,-118,-2,-113,-2,-118,-2,-111,-2,-115,-2,-110,-2,-110,-2,-107,-2,-105,-2,-102,-2,-99,-2,-96,-2,-90,-2,-92,-2,-80,-2,-83,-2,-73,-2,-70,-2,-66,-2,-58,-2,-55,-2,-46,-2,-43,-2,-35,-2,-28,-2,-22,-2,-14,-2,-7,-2,0,-1,8,-1,16,-1,24,-1,33,-1,41,-1,49,-1,59,-1,67,-1,75,-1,87,-1,94,-1,106,-1,112,-1,124,-1,-122,-1,-114,-1,-102,-1,-92,-1,-84,-1,-72,-1,-63,-1,-52,-1,-42,-1,-31,-1,-21,-1,-12,-1,1,0,9,0,21,0,29,0,42,0,49,0,62,0,71,0,81,0,91,0,99,0,113,0,118,0,-124,0,-120,0,-105,0,-100,0,-88,0,-81,0,-73,0,-61,0,-57,0,-44,0,-40,0,-30,0,-23,0,-14,0,-12,0,5,1,0,1,19,1,13,1,29,1,28,1,40,1,39,1,52,1,49,1,59,1,61,1,66,1,70,1,74,1,77,1,80,1,84,1,83,1,90,1,90,1,90,1,95,1,93,1,95,1,97,1,94,1,98,1,94,1,96,1,95,1,91,1,95,1,86,1,93,1,81,1,88,1,76,1,82,1,71,1,73,1,64,1,65,1,57,1,54,1,50,1,41,1,40,1,32,1,27,1,21,1,15,1,8,1,0,1,-2,0,-17,0,-16,0,-30,0,-32,0,-43,0,-52,0,-58,0,-68,0,-73,0,-86,0,-90,0,-104,0,-109,0,-119,0,127,0,119,0,107,0,103,0,87,0,83,0,69,0,62,0,53,0,40,0,34,0,21,0,13,0,4,0,-8,-1,-16,-1,-27,-1,-34,-1,-48,-1,-53,-1,-67,-1,-72,-1,-84,-1,-95,-1,-98,-1,-116,-1,-116,-1,123,-1,120,-1,110,-1,97,-1,98,-1,77,-1,81,-1,64,-1,62,-1,51,-1,44,-1,39,-1,27,-1,27,-1,12,-1,14,-1,0,-1,-1,-2,-9,-2,-15,-2,-18,-2,-26,-2,-31,-2,-33,-2,-42,-2,-39,-2,-52,-2,-50,-2,-54,-2,-60,-2,-59,-2,-67,-2,-64,-2,-71,-2,-69,-2,-73,-2,-74,-2,-75,-2,-76,-2,-77,-2,-76,-2,-78,-2,-75,-2,-80,-2,-71,-2,-80,-2,-67,-2,-78,-2,-66,-2,-71,-2,-64,-2,-63,-2,-61,-2,-57,-2,-54,-2,-50,-2,-46,-2,-44,-2,-36,-2}; }
	private static byte[] data15(){ return new byte[] {-35,-2,-28,-2,-24,-2,-18,-2,-15,-2,-5,-2,-4,-2,6,-1,11,-1,16,-1,26,-1,28,-1,39,-1,45,-1,51,-1,62,-1,65,-1,77,-1,81,-1,93,-1,98,-1,108,-1,116,-1,125,-1,-123,-1,-114,-1,-106,-1,-95,-1,-90,-1,-76,-1,-70,-1,-61,-1,-50,-1,-44,-1,-30,-1,-28,-1,-9,-1,-10,-1,9,0,9,0,25,0,30,0,42,0,49,0,60,0,67,0,78,0,84,0,96,0,101,0,114,0,119,0,-126,0,-122,0,-107,0,-107,0,-92,0,-90,0,-77,0,-73,0,-65,0,-59,0,-49,0,-46,0,-36,0,-31,0,-25,0,-18,0,-14,0,-6,0,-3,0,4,1,9,1,14,1,17,1,24,1,24,1,32,1,34,1,36,1,43,1,41,1,48,1,48,1,50,1,53,1,55,1,55,1,57,1,59,1,57,1,60,1,59,1,58,1,59,1,58,1,58,1,55,1,55,1,52,1,52,1,49,1,46,1,44,1,41,1,39,1,33,1,33,1,24,1,27,1,16,1,17,1,8,1,6,1,0,1,-6,0,-10,0,-18,0,-21,0,-29,0,-34,0,-43,0,-45,0,-58,0,-59,0,-69,0,-76,0,-82,0,-92,0,-96,0,-108,0,-112,0,-123,0,127,0,118,0,110,0,102,0,94,0,83,0,79,0,65,0,61,0,50,0,42,0,34,0,23,0,17,0,6,0,-2,-1,-10,-1,-18,-1,-30,-1,-35,-1,-45,-1,-55,-1,-61,-1,-72,-1,-77,-1,-88,-1,-95,-1,-105,-1,-110,-1,-122,-1,-125,-1,119,-1,113,-1,107,-1,97,-1,91,-1,84,-1,76,-1,72,-1,61,-1,59,-1,50,-1,45,-1,38,-1,33,-1,27,-1,23,-1,15,-1,14,-1,4,-1,5,-1,-4,-2,-6,-2,-8,-2,-18,-2,-12,-2,-26,-2,-20,-2,-29,-2,-27,-2,-34,-2,-31,-2,-37,-2,-38,-2,-36,-2,-44,-2,-36,-2,-45,-2,-40,-2,-43,-2,-41,-2,-43,-2,-39,-2,-43,-2,-38,-2,-38,-2,-38,-2,-33,-2,-35,-2,-29,-2,-29,-2,-25,-2,-25,-2,-18,-2,-17,-2,-12,-2,-9,-2,-7,-2,2,-1,-1,-2,12,-1,10,-1,19,-1,23,-1,27,-1,35,-1,39,-1,44,-1,54,-1,54,-1,68,-1,67,-1,79,-1,82,-1,92,-1,97,-1,105,-1,112,-1,119,-1,-128,-1,-122,-1,-115,-1,-105,-1,-98,-1,-90,-1,-83,-1,-74,-1,-66,-1,-59,-1,-48,-1,-44,-1,-31,-1,-28,-1,-14,-1,-12,-1,3,0,6,0,17,0,23,0,34,0,39,0,50,0,57,0,64,0,74,0,79,0,90,0,96,0,102,0,115,0,114,0,-124,0,-128,0,-112,0,-110,0,-102,0,-93,0,-90,0,-80,0,-77,0,-68,0,-64,0,-57,0,-52,0,-46,0,-40,0,-37,0,-30,0,-27,0,-20,0,-19,0,-10,0,-12,0,-3,0,-3,0,4,1,3,1,10,1,8,1,16,1,14,1,19,1,17,1,23,1,22,1,24,1,24,1,25,1,25,1,28,1,24,1,26,1,27,1,22,1,27,1,19,1,24,1,19,1,17,1,17,1,13,1,11,1,10,1,3,1,5,1,-3,0,-2,0,-10,0,-10,0,-18,0,-19,0,-25,0,-29,0,-35,0,-38,0,-46,0,-49,0,-55,0,-62,0,-64,0,-77,0,-74,0,-90,0,-88,0,-99,0,-105,0,-110,0,-120,0,-124,0,124,0,116,0,111,0,100,0,97,0,85,0,82,0,71,0,65,0,56,0,51,0,39,0,36,0,24,0,20,0,8,0,4,0,-6,-1,-13,-1,-21,-1,-28,-1,-38,-1,-43,-1,-53,-1,-58,-1,-68,-1,-73,-1,-83,-1,-89,-1,-96,-1,-105,-1,-108,-1,-120,-1,-122,-1,123,-1,119,-1,110,-1,107,-1,97,-1,94,-1,86,-1,80,-1,76,-1,69,-1,64,-1,60,-1,51,-1,51,-1,43,-1,40,-1,36,-1,29,-1,29,-1,20,-1,23,-1,14,-1,14,-1,9,-1,7,-1,5,-1,1,-1,1,-1,-4,-2,-2,-2,-8,-2,-5,-2,-10,-2,-8,-2,-10,-2,-11,-2,-10,-2,-11,-2,-11,-2,-9,-2,-11,-2,-8,-2,-8,-2,-8,-2,-3,-2,-6,-2,1,-1,-2,-2,4,-1,5,-1,7,-1,12,-1,12,-1,18,-1,22,-1,21,-1,31,-1,28,-1,41,-1,36,-1,48,-1,47,-1,57,-1,58,-1,66,-1,69,-1,76,-1,81,-1,87,-1,92,-1,100,-1,104,-1,112,-1,117,-1,123,-1,-123,-1,-122,-1,-109,-1,-107,-1,-98,-1,-91,-1,-85,-1,-77,-1,-70,-1,-64,-1,-53,-1,-50,-1,-42,-1,-32,-1,-28,-1,-17,-1,-13,-1,-3,-1,3,0,10,0,20,0,22,0,36,0,37,0,50,0,53,0,62,0,68,0,77,0,80,0,92,0,96,0,102,0,111,0,115,0,123,0,-127,0,-120,0,-116,0,-108,0,-104,0,-95,0,-94,0,-84,0,-84,0,-72,0,-74,0,-62,0,-66,0,-52,0,-56,0}; }
	private static byte[] data16(){ return new byte[] {-46,0,-44,0,-41,0,-36,0,-33,0,-31,0,-25,0,-25,0,-21,0,-17,0,-19,0,-10,0,-16,0,-8,0,-10,0,-6,0,-7,0,-5,0,-6,0,-2,0,-6,0,0,1,-9,0,1,1,-9,0,-1,0,-9,0,-6,0,-9,0,-11,0,-10,0,-15,0,-15,0,-19,0,-19,0,-25,0,-25,0,-29,0,-33,0,-35,0,-40,0,-42,0,-48,0,-51,0,-54,0,-62,0,-62,0,-71,0,-72,0,-79,0,-85,0,-88,0,-97,0,-97,0,-108,0,-110,0,-118,0,-124,0,-128,0,118,0,116,0,107,0,101,0,95,0,87,0,82,0,75,0,68,0,60,0,56,0,44,0,44,0,31,0,28,0,19,0,12,0,7,0,-3,-1,-7,-1,-16,-1,-22,-1,-30,-1,-34,-1,-45,-1,-48,-1,-59,-1,-60,-1,-73,-1,-74,-1,-85,-1,-88,-1,-97,-1,-101,-1,-110,-1,-113,-1,-122,-1,-125,-1,124,-1,116,-1,115,-1,106,-1,101,-1,99,-1,88,-1,91,-1,79,-1,78,-1,73,-1,68,-1,65,-1,60,-1,57,-1,51,-1,51,-1,45,-1,43,-1,40,-1,37,-1,33,-1,34,-1,27,-1,30,-1,24,-1,25,-1,21,-1,23,-1,19,-1,19,-1,19,-1,16,-1,19,-1,17,-1,18,-1,16,-1,20,-1,16,-1,21,-1,21,-1,20,-1,25,-1,22,-1,28,-1,28,-1,31,-1,31,-1,37,-1,36,-1,42,-1,43,-1,47,-1,49,-1,56,-1,55,-1,63,-1,64,-1,68,-1,76,-1,76,-1,85,-1,84,-1,94,-1,96,-1,103,-1,107,-1,113,-1,117,-1,124,-1,-127,-1,-121,-1,-115,-1,-109,-1,-104,-1,-97,-1,-92,-1,-85,-1,-77,-1,-74,-1,-65,-1,-60,-1,-53,-1,-46,-1,-42,-1,-30,-1,-32,-1,-14,-1,-18,-1,-6,-1,0,0,6,0,14,0,19,0,25,0,33,0,40,0,44,0,54,0,57,0,64,0,73,0,74,0,86,0,87,0,98,0,99,0,108,0,112,0,118,0,124,0,-126,0,-122,0,-116,0,-113,0,-106,0,-100,0,-99,0,-89,0,-93,0,-79,0,-83,0,-74,0,-71,0,-70,0,-63,0,-62,0,-58,0,-55,0,-51,0,-51,0,-45,0,-48,0,-38,0,-44,0,-36,0,-38,0,-37,0,-31,0,-36,0,-30,0,-32,0,-32,0,-28,0,-32,0,-29,0,-31,0,-31,0,-30,0,-33,0,-32,0,-34,0,-36,0,-36,0,-39,0,-39,0,-43,0,-43,0,-49,0,-45,0,-56,0,-51,0,-60,0,-58,0,-65,0,-67,0,-71,0,-75,0,-76,0,-84,0,-86,0,-91,0,-96,0,-97,0,-108,0,-106,0,-115,0,-121,0,-121,0,123,0,124,0,115,0,111,0,103,0,102,0,91,0,89,0,82,0,75,0,71,0,64,0,56,0,54,0,43,0,43,0,30,0,28,0,21,0,14,0,9,0,1,0,-4,-1,-11,-1,-16,-1,-24,-1,-28,-1,-38,-1,-38,-1,-51,-1,-51,-1,-61,-1,-66,-1,-68,-1,-83,-1,-77,-1,-93,-1,-92,-1,-100,-1,-105,-1,-111,-1,-114,-1,-124,-1,-123,-1,123,-1,121,-1,117,-1,109,-1,108,-1,102,-1,97,-1,95,-1,89,-1,88,-1,80,-1,82,-1,72,-1,77,-1,65,-1,70,-1,61,-1,64,-1,56,-1,59,-1,53,-1,52,-1,52,-1,48,-1,48,-1,47,-1,44,-1,46,-1,42,-1,44,-1,42,-1,43,-1,43,-1,41,-1,44,-1,42,-1,45,-1,44,-1,46,-1,46,-1,49,-1,49,-1,52,-1,52,-1,56,-1,56,-1,62,-1,59,-1,67,-1,66,-1,70,-1,76,-1,72,-1,84,-1,80,-1,89,-1,91,-1,93,-1,100,-1,103,-1,105,-1,115,-1,111,-1,126,-1,120,-1,-121,-1,-125,-1,-113,-1,-114,-1,-103,-1,-103,-1,-92,-1,-94,-1,-80,-1,-82,-1,-71,-1,-69,-1,-61,-1,-58,-1,-47,-1,-48,-1,-35,-1,-37,-1,-24,-1,-23,-1,-13,-1,-11,-1,-1,-1,0,0,11,0,12,0,23,0,24,0,34,0,37,0,43,0,50,0,55,0,60,0,67,0,71,0,78,0,82,0,88,0,92,0,101,0,99,0,113,0,109,0,121,0,120,0,-127,0,-125,0,-120,0,-116,0,-112,0,-106,0,-106,0,-97,0,-99,0,-93,0,-87,0,-89,0,-80,0,-83,0,-77,0,-73,0,-75,0,-67,0,-71,0,-63,0,-66,0,-60,0,-62,0,-60,0,-55,0,-61,0,-52,0,-58,0,-54,0,-53,0,-56,0,-52,0,-56,0,-52,0,-57,0,-52,0,-60,0,-52,0,-63,0,-55,0,-62,0,-62,0,-63,0,-66,0,-69,0,-66,0,-75,0,-72,0,-78,0,-80,0,-82,0,-84,0,-91,0,-89,0,-97,0,-98,0,-103,0,-106,0,-110,0,-114,0,-118,0,-123,0,-126,0,123,0,122,0,114,0,114,0,102,0,106,0,92,0,94,0,85,0,82,0,75,0,71,0,65,0,60,0,54,0,51,0,41,0,40,0}; }
	private static byte[] data17(){ return new byte[] {30,0,29,0,20,0,17,0,9,0,5,0,-2,-1,-7,-1,-10,-1,-21,-1,-21,-1,-31,-1,-33,-1,-41,-1,-44,-1,-52,-1,-56,-1,-60,-1,-68,-1,-71,-1,-77,-1,-82,-1,-86,-1,-92,-1,-97,-1,-100,-1,-108,-1,-108,-1,-117,-1,-117,-1,-126,-1,-126,-1,123,-1,122,-1,115,-1,113,-1,110,-1,105,-1,103,-1,99,-1,95,-1,96,-1,88,-1,90,-1,82,-1,86,-1,77,-1,83,-1,72,-1,78,-1,71,-1,72,-1,71,-1,67,-1,71,-1,64,-1,68,-1,65,-1,65,-1,66,-1,63,-1,67,-1,63,-1,67,-1,65,-1,65,-1,71,-1,64,-1,73,-1,68,-1,73,-1,74,-1,74,-1,79,-1,77,-1,83,-1,82,-1,87,-1,88,-1,92,-1,93,-1,97,-1,100,-1,103,-1,107,-1,109,-1,114,-1,116,-1,122,-1,123,-1,-126,-1,-123,-1,-122,-1,-110,-1,-116,-1,-102,-1,-104,-1,-96,-1,-93,-1,-86,-1,-85,-1,-76,-1,-75,-1,-66,-1,-64,-1,-58,-1,-53,-1,-48,-1,-41,-1,-39,-1,-31,-1,-27,-1,-23,-1,-13,-1,-15,-1,-1,-1,-5,-1,10,0,7,0,16,0,22,0,24,0,34,0,34,0,44,0,44,0,54,0,55,0,63,0,67,0,70,0,78,0,80,0,86,0,90,0,95,0,98,0,106,0,105,0,114,0,113,0,123,0,122,0,-128,0,-126,0,-120,0,-119,0,-114,0,-112,0,-108,0,-106,0,-102,0,-101,0,-96,0,-96,0,-92,0,-91,0,-89,0,-86,0,-84,0,-84,0,-82,0,-81,0,-78,0,-80,0,-75,0,-80,0,-72,0,-80,0,-72,0,-77,0,-74,0,-75,0,-77,0,-75,0,-76,0,-79,0,-75,0,-83,0,-77,0,-84,0,-82,0,-85,0,-87,0,-86,0,-93,0,-90,0,-96,0,-96,0,-100,0,-101,0,-106,0,-106,0,-112,0,-113,0,-117,0,-120,0,-124,0,-126,0,123,0,124,0,116,0,114,0,111,0,103,0,105,0,94,0,95,0,87,0,85,0,79,0,75,0,69,0,67,0,61,0,54,0,55,0,40,0,48,0,32,0,34,0,25,0,22,0,17,0,11,0,8,0,-2,-1,1,0,-12,-1,-11,-1,-20,-1,-22,-1,-29,-1,-34,-1,-36,-1,-46,-1,-44,-1,-55,-1,-56,-1,-63,-1,-66,-1,-71,-1,-75,-1,-79,-1,-87,-1,-85,-1,-97,-1,-92,-1,-105,-1,-102,-1,-111,-1,-110,-1,-118,-1,-119,-1,-123,-1,-127,-1,127,-1,122,-1,120,-1,119,-1,111,-1,115,-1,107,-1,107,-1,105,-1,100,-1,103,-1,96,-1,98,-1,93,-1,93,-1,93,-1,89,-1,90,-1,87,-1,88,-1,87,-1,85,-1,85,-1,86,-1,84,-1,86,-1,85,-1,83,-1,88,-1,85,-1,87,-1,87,-1,89,-1,90,-1,89,-1,94,-1,92,-1,95,-1,98,-1,98,-1,99,-1,106,-1,101,-1,110,-1,108,-1,113,-1,115,-1,116,-1,123,-1,122,-1,-128,-1,-127,-1,-123,-1,-118,-1,-116,-1,-113,-1,-107,-1,-107,-1,-99,-1,-97,-1,-94,-1,-88,-1,-85,-1,-81,-1,-76,-1,-71,-1,-69,-1,-62,-1,-59,-1,-55,-1,-48,-1,-46,-1,-40,-1,-36,-1,-30,-1,-28,-1,-21,-1,-15,-1,-16,-1,-4,-1,-4,-1,2,0,8,0,10,0,16,0,23,0,23,0,33,0,33,0,40,0,45,0,47,0,54,0,57,0,62,0,67,0,69,0,75,0,79,0,82,0,88,0,90,0,94,0,99,0,101,0,106,0,109,0,112,0,116,0,119,0,121,0,126,0,127,0,-125,0,-123,0,-119,0,-119,0,-114,0,-113,0,-113,0,-105,0,-111,0,-101,0,-108,0,-98,0,-104,0,-97,0,-100,0,-96,0,-97,0,-97,0,-93,0,-97,0,-92,0,-97,0,-91,0,-97,0,-92,0,-96,0,-94,0,-98,0,-93,0,-101,0,-95,0,-101,0,-100,0,-102,0,-104,0,-104,0,-107,0,-108,0,-112,0,-111,0,-116,0,-115,0,-120,0,-123,0,-124,0,-127,0,125,0,125,0,119,0,116,0,115,0,108,0,111,0,100,0,102,0,94,0,95,0,88,0,85,0,82,0,75,0,76,0,67,0,66,0,60,0,56,0,54,0,46,0,46,0,37,0,36,0,30,0,25,0,24,0,14,0,16,0,5,0,6,0,-4,-1,-2,-1,-12,-1,-13,-1,-20,-1,-23,-1,-27,-1,-33,-1,-34,-1,-44,-1,-42,-1,-50,-1,-55,-1,-53,-1,-67,-1,-62,-1,-70,-1,-75,-1,-75,-1,-82,-1,-87,-1,-85,-1,-95,-1,-94,-1,-99,-1,-103,-1,-104,-1,-111,-1,-109,-1,-118,-1,-114,-1,-123,-1,-121,-1,-128,-1,-125,-1,122,-1,126,-1,120,-1,119,-1,118,-1,114,-1,116,-1,109,-1,114,-1,106,-1,111,-1,107,-1,104,-1,108,-1,102,-1,106,-1,103,-1,103,-1,103,-1,103,-1,103,-1,102,-1,105,-1,101,-1,108,-1,101,-1,109,-1,103,-1,110,-1,107,-1}; }
	private static byte[] data18(){ return new byte[] {111,-1,112,-1,110,-1,117,-1,113,-1,121,-1,118,-1,122,-1,124,-1,126,-1,-127,-1,-126,-1,-121,-1,-122,-1,-115,-1,-115,-1,-112,-1,-107,-1,-106,-1,-103,-1,-97,-1,-97,-1,-90,-1,-90,-1,-85,-1,-82,-1,-76,-1,-76,-1,-67,-1,-70,-1,-60,-1,-60,-1,-54,-1,-50,-1,-47,-1,-42,-1,-38,-1,-35,-1,-29,-1,-26,-1,-22,-1,-15,-1,-17,-1,-4,-1,-8,-1,2,0,3,0,8,0,13,0,16,0,22,0,24,0,29,0,35,0,36,0,42,0,45,0,50,0,53,0,57,0,64,0,60,0,74,0,67,0,80,0,77,0,84,0,86,0,90,0,92,0,97,0,98,0,103,0,104,0,109,0,109,0,114,0,116,0,118,0,121,0,122,0,125,0,-128,0,-128,0,-125,0,-122,0,-124,0,-118,0,-120,0,-119,0,-114,0,-118,0,-112,0,-115,0,-112,0,-113,0,-113,0,-110,0,-111,0,-113,0,-108,0,-115,0,-108,0,-115,0,-109,0,-115,0,-113,0,-114,0,-116,0,-116,0,-116,0,-121,0,-119,0,-122,0,-123,0,-125,0,-126,0,127,0,125,0,124,0,121,0,118,0,118,0,113,0,112,0,109,0,105,0,103,0,102,0,95,0,97,0,89,0,89,0,83,0,83,0,76,0,77,0,68,0,70,0,62,0,60,0,57,0,51,0,51,0,43,0,42,0,36,0,34,0,29,0,25,0,21,0,18,0,12,0,11,0,3,0,3,0,-4,-1,-6,-1,-11,-1,-14,-1,-20,-1,-22,-1,-28,-1,-27,-1,-38,-1,-36,-1,-42,-1,-48,-1,-46,-1,-58,-1,-52,-1,-63,-1,-64,-1,-65,-1,-76,-1,-68,-1,-82,-1,-79,-1,-84,-1,-88,-1,-89,-1,-93,-1,-97,-1,-97,-1,-103,-1,-102,-1,-110,-1,-104,-1,-116,-1,-109,-1,-119,-1,-116,-1,-121,-1,-121,-1,-122,-1,-127,-1,-124,-1,125,-1,-127,-1,124,-1,125,-1,123,-1,123,-1,120,-1,122,-1,120,-1,119,-1,121,-1,117,-1,120,-1,119,-1,118,-1,121,-1,118,-1,121,-1,119,-1,122,-1,122,-1,122,-1,124,-1,124,-1,127,-1,126,-1,-126,-1,-128,-1,-124,-1,-122,-1,-122,-1,-118,-1,-118,-1,-116,-1,-111,-1,-114,-1,-105,-1,-109,-1,-102,-1,-101,-1,-99,-1,-94,-1,-95,-1,-88,-1,-89,-1,-81,-1,-83,-1,-76,-1,-76,-1,-70,-1,-69,-1,-63,-1,-63,-1,-56,-1,-55,-1,-51,-1,-46,-1,-45,-1,-37,-1,-40,-1,-28,-1,-32,-1,-22,-1,-24,-1,-15,-1,-15,-1,-9,-1,-5,-1,-4,-1,3,0,6,0,7,0,15,0,16,0,20,0,26,0,27,0,31,0,37,0,36,0,45,0,44,0,52,0,51,0,57,0,59,0,64,0,66,0,69,0,73,0,76,0,77,0,84,0,83,0,87,0,91,0,91,0,97,0,97,0,100,0,102,0,106,0,104,0,113,0,107,0,116,0,112,0,118,0,117,0,119,0,123,0,118,0,-128,0,120,0,-127,0,124,0,-128,0,127,0,-127,0,-127,0,-127,0,-128,0,-124,0,127,0,-123,0,127,0,-127,0,-125,0,126,0,-127,0,-128,0,124,0,-128,0,123,0,124,0,123,0,119,0,121,0,117,0,119,0,113,0,114,0,111,0,109,0,109,0,103,0,106,0,99,0,100,0,94,0,95,0,91,0,87,0,89,0,79,0,83,0,76,0,74,0,71,0,69,0,64,0,63,0,58,0,55,0,52,0,49,0,45,0,42,0,38,0,36,0,30,0,30,0,22,0,22,0,17,0,14,0,9,0,9,0,0,0,1,0,-5,-1,-8,-1,-11,-1,-15,-1,-19,-1,-21,-1,-28,-1,-27,-1,-34,-1,-34,-1,-41,-1,-41,-1,-48,-1,-48,-1,-53,-1,-55,-1,-60,-1,-60,-1,-67,-1,-66,-1,-73,-1,-72,-1,-78,-1,-77,-1,-84,-1,-84,-1,-86,-1,-91,-1,-90,-1,-97,-1,-94,-1,-100,-1,-99,-1,-104,-1,-104,-1,-107,-1,-107,-1,-109,-1,-113,-1,-111,-1,-115,-1,-115,-1,-116,-1,-117,-1,-119,-1,-119,-1,-120,-1,-122,-1,-120,-1,-122,-1,-122,-1,-122,-1,-125,-1,-120,-1,-125,-1,-121,-1,-122,-1,-124,-1,-119,-1,-124,-1,-118,-1,-121,-1,-118,-1,-120,-1,-115,-1,-118,-1,-112,-1,-116,-1,-111,-1,-111,-1,-110,-1,-106,-1,-106,-1,-105,-1,-100,-1,-103,-1,-95,-1,-98,-1,-94,-1,-89,-1,-93,-1,-82,-1,-89,-1,-77,-1,-83,-1,-74,-1,-75,-1,-70,-1,-69,-1,-65,-1,-61,-1,-62,-1,-53,-1,-56,-1,-49,-1,-46,-1,-45,-1,-40,-1,-37,-1,-34,-1,-31,-1,-26,-1,-27,-1,-17,-1,-19,-1,-14,-1,-9,-1,-10,-1,0,0,-3,-1,5,0,6,0,9,0,15,0,15,0,21,0,24,0,25,0,31,0,33,0,36,0,41,0,42,0,45,0,50,0,52,0,54,0,60,0,58,0,66,0,65,0,70,0,71,0,75,0,76,0}; }
	private static byte[] data19(){ return new byte[] {80,0,81,0,85,0,86,0,89,0,89,0,94,0,95,0,95,0,101,0,97,0,104,0,102,0,106,0,105,0,109,0,106,0,113,0,108,0,113,0,113,0,112,0,116,0,113,0,115,0,117,0,113,0,119,0,113,0,119,0,114,0,117,0,114,0,116,0,115,0,114,0,113,0,113,0,112,0,111,0,110,0,109,0,106,0,110,0,102,0,105,0,101,0,101,0,99,0,97,0,96,0,91,0,93,0,88,0,88,0,85,0,82,0,81,0,76,0,78,0,71,0,71,0,69,0,63,0,64,0,58,0,57,0,55,0,50,0,49,0,44,0,42,0,40,0,34,0,36,0,27,0,28,0,23,0,20,0,17,0,15,0,9,0,9,0,3,0,2,0,-3,-1,-5,-1,-9,-1,-11,-1,-16,-1,-17,-1,-23,-1,-22,-1,-30,-1,-29,-1,-35,-1,-35,-1,-42,-1,-40,-1,-48,-1,-46,-1,-53,-1,-54,-1,-55,-1,-63,-1,-58,-1,-68,-1,-66,-1,-69,-1,-74,-1,-73,-1,-77,-1,-80,-1,-80,-1,-85,-1,-84,-1,-87,-1,-89,-1,-92,-1,-92,-1,-95,-1,-95,-1,-98,-1,-98,-1,-101,-1,-101,-1,-103,-1,-102,-1,-107,-1,-103,-1,-110,-1,-104,-1,-108,-1,-110,-1,-107,-1,-111,-1,-109,-1,-109,-1,-111,-1,-109,-1,-110,-1,-109,-1,-110,-1,-108,-1,-110,-1,-107,-1,-108,-1,-106,-1,-107,-1,-103,-1,-108,-1,-100,-1,-104,-1,-100,-1,-101,-1,-97,-1,-99,-1,-93,-1,-95,-1,-93,-1,-89,-1,-91,-1,-84,-1,-87,-1,-81,-1,-83,-1,-77,-1,-77,-1,-74,-1,-73,-1,-68,-1,-69,-1,-63,-1,-64,-1,-58,-1,-59,-1,-52,-1,-53,-1,-50,-1,-43,-1,-48,-1,-36,-1,-41,-1,-33,-1,-31,-1,-32,-1,-22,-1,-26,-1,-18,-1,-17,-1,-16,-1,-7,-1,-11,-1,-2,-1,-4,-1,3,0,3,0,9,0,9,0,15,0,14,0,23,0,18,0,29,0,26,0,33,0,32,0,38,0,39,0,42,0,47,0,46,0,51,0,54,0,53,0,61,0,59,0,63,0,67,0,65,0,72,0,71,0,75,0,75,0,80,0,78,0,84,0,83,0,85,0,89,0,87,0,92,0,90,0,95,0,93,0,97,0,95,0,99,0,98,0,101,0,99,0,101,0,102,0,103,0,103,0,102,0,105,0,101,0,107,0,102,0,104,0,104,0,104,0,102,0,104,0,101,0,103,0,101,0,101,0,98,0,101,0,96,0,99,0,94,0,95,0,94,0,91,0,93,0,86,0,91,0,83,0,87,0,81,0,82,0,77,0,79,0,73,0,76,0,67,0,71,0,66,0,63,0,63,0,60,0,55,0,57,0,50,0,51,0,46,0,45,0,41,0,39,0,36,0,34,0,31,0,28,0,24,0,23,0,20,0,15,0,17,0,7,0,10,0,7,0,-2,-1,5,0,-10,-1,-1,-1,-12,-1,-10,-1,-16,-1,-18,-1,-19,-1,-26,-1,-22,-1,-32,-1,-30,-1,-34,-1,-38,-1,-39,-1,-41,-1,-46,-1,-46,-1,-51,-1,-51,-1,-55,-1,-55,-1,-62,-1,-59,-1,-65,-1,-64,-1,-69,-1,-69,-1,-73,-1,-71,-1,-78,-1,-76,-1,-80,-1,-79,-1,-84,-1,-81,-1,-89,-1,-82,-1,-92,-1,-86,-1,-92,-1,-90,-1,-94,-1,-90,-1,-99,-1,-89,-1,-101,-1,-92,-1,-99,-1,-96,-1,-99,-1,-96,-1,-99,-1,-98,-1,-98,-1,-99,-1,-98,-1,-97,-1,-99,-1,-96,-1,-99,-1,-94,-1,-98,-1,-94,-1,-95,-1,-94,-1,-92,-1,-93,-1,-90,-1,-90,-1,-89,-1,-86,-1,-88,-1,-84,-1,-82,-1,-85,-1,-76,-1,-83,-1,-73,-1,-78,-1,-71,-1,-74,-1,-68,-1,-68,-1,-65,-1,-64,-1,-60,-1,-61,-1,-55,-1,-56,-1,-51,-1,-50,-1,-48,-1,-44,-1,-44,-1,-38,-1,-40,-1,-33,-1,-34,-1,-28,-1,-29,-1,-23,-1,-23,-1,-20,-1,-14,-1,-15,-1,-11,-1,-8,-1,-7,-1,0,0,-3,-1,5,0,4,0,7,0,13,0,11,0,17,0,20,0,19,0,26,0,25,0,30,0,31,0,36,0,35,0,40,0,41,0,44,0,47,0,48,0,52,0,51,0,57,0,57,0,59,0,63,0,63,0,64,0,69,0,69,0,70,0,75,0,72,0,76,0,79,0,76,0,83,0,80,0,83,0,85,0,83,0,87,0,87,0,89,0,87,0,92,0,87,0,94,0,89,0,93,0,92,0,92,0,94,0,90,0,96,0,91,0,94,0,93,0,91,0,94,0,90,0,94,0,88,0,94,0,86,0,91,0,88,0,86,0,88,0,84,0,84,0,84,0,81,0,81,0,79,0,78,0,75,0,76,0,72,0,73,0,69,0,68,0,66,0,64,0,64,0,59,0,58,0,58,0,52,0,55,0,47,0,50,0,43,0,46,0,39,0,38,0,38,0}; }
	private static byte[] data20(){ return new byte[] {32,0,32,0,30,0,24,0,26,0,19,0,21,0,15,0,15,0,10,0,9,0,5,0,5,0,-1,-1,0,0,-6,-1,-6,-1,-9,-1,-13,-1,-15,-1,-15,-1,-23,-1,-17,-1,-30,-1,-22,-1,-34,-1,-28,-1,-37,-1,-35,-1,-39,-1,-41,-1,-44,-1,-44,-1,-50,-1,-48,-1,-52,-1,-55,-1,-54,-1,-59,-1,-59,-1,-62,-1,-63,-1,-65,-1,-66,-1,-69,-1,-70,-1,-71,-1,-73,-1,-73,-1,-78,-1,-74,-1,-80,-1,-78,-1,-80,-1,-83,-1,-79,-1,-87,-1,-80,-1,-87,-1,-83,-1,-88,-1,-86,-1,-86,-1,-88,-1,-85,-1,-92,-1,-84,-1,-91,-1,-86,-1,-88,-1,-89,-1,-86,-1,-89,-1,-86,-1,-88,-1,-84,-1,-88,-1,-82,-1,-87,-1,-82,-1,-84,-1,-82,-1,-79,-1,-82,-1,-77,-1,-79,-1,-76,-1,-75,-1,-74,-1,-73,-1,-71,-1,-68,-1,-70,-1,-66,-1,-63,-1,-67,-1,-55,-1,-66,-1,-54,-1,-57,-1,-54,-1,-51,-1,-49,-1,-50,-1,-44,-1,-45,-1,-40,-1,-40,-1,-36,-1,-35,-1,-33,-1,-30,-1,-28,-1,-25,-1,-23,-1,-21,-1,-18,-1,-17,-1,-13,-1,-10,-1,-11,-1,-3,-1,-7,-1,1,0,0,0,4,0,5,0,10,0,9,0,15,0,14,0,20,0,18,0,24,0,24,0,28,0,30,0,31,0,34,0,36,0,38,0,42,0,40,0,47,0,45,0,49,0,51,0,51,0,55,0,56,0,57,0,61,0,60,0,62,0,66,0,64,0,69,0,67,0,71,0,70,0,74,0,72,0,76,0,74,0,78,0,77,0,77,0,82,0,76,0,85,0,76,0,86,0,79,0,84,0,82,0,83,0,83,0,84,0,82,0,84,0,83,0,82,0,84,0,82,0,82,0,81,0,82,0,80,0,81,0,78,0,79,0,77,0,78,0,75,0,75,0,74,0,72,0,72,0,69,0,70,0,67,0,67,0,64,0,63,0,61,0,61,0,59,0,55,0,57,0,51,0,52,0,51,0,45,0,48,0,42,0,43,0,39,0,37,0,37,0,31,0,34,0,27,0,28,0,24,0,23,0,19,0,19,0,15,0,14,0,11,0,8,0,7,0,4,0,2,0,0,0,-3,-1,-5,-1,-7,-1,-11,-1,-10,-1,-15,-1,-17,-1,-18,-1,-21,-1,-24,-1,-23,-1,-30,-1,-28,-1,-33,-1,-32,-1,-37,-1,-37,-1,-40,-1,-42,-1,-43,-1,-46,-1,-47,-1,-49,-1,-51,-1,-53,-1,-53,-1,-58,-1,-54,-1,-63,-1,-58,-1,-62,-1,-64,-1,-64,-1,-66,-1,-67,-1,-68,-1,-69,-1,-71,-1,-71,-1,-71,-1,-75,-1,-72,-1,-77,-1,-73,-1,-78,-1,-75,-1,-77,-1,-79,-1,-76,-1,-79,-1,-80,-1,-75,-1,-82,-1,-77,-1,-78,-1,-81,-1,-76,-1,-80,-1,-77,-1,-78,-1,-78,-1,-74,-1,-80,-1,-72,-1,-79,-1,-72,-1,-74,-1,-72,-1,-74,-1,-68,-1,-74,-1,-66,-1,-68,-1,-68,-1,-64,-1,-66,-1,-61,-1,-64,-1,-57,-1,-61,-1,-56,-1,-57,-1,-53,-1,-53,-1,-50,-1,-50,-1,-47,-1,-45,-1,-44,-1,-42,-1,-39,-1,-40,-1,-34,-1,-36,-1,-30,-1,-31,-1,-28,-1,-26,-1,-24,-1,-22,-1,-18,-1,-20,-1,-14,-1,-13,-1,-12,-1,-8,-1,-6,-1,-7,-1,0,0,-2,-1,5,0,1,0,10,0,4,0,15,0,11,0,16,0,15,0,23,0,17,0,27,0,24,0,27,0,30,0,32,0,31,0,39,0,34,0,40,0,41,0,42,0,45,0,45,0,48,0,49,0,52,0,51,0,55,0,55,0,56,0,59,0,59,0,61,0,63,0,61,0,65,0,66,0,65,0,68,0,68,0,68,0,71,0,71,0,68,0,75,0,70,0,74,0,73,0,74,0,72,0,76,0,73,0,75,0,75,0,73,0,75,0,75,0,73,0,74,0,74,0,72,0,75,0,71,0,71,0,73,0,68,0,73,0,67,0,69,0,68,0,65,0,66,0,65,0,63,0,63,0,60,0,61,0,57,0,58,0,58,0,50,0,59,0,45,0,55,0,46,0,47,0,47,0,41,0,44,0,38,0,40,0,34,0,38,0,30,0,32,0,28,0,28,0,24,0,25,0,18,0,22,0,14,0,19,0,9,0,14,0,7,0,7,0,5,0,3,0,1,0,-3,-1,-1,-1,-9,-1,-4,-1,-12,-1,-12,-1,-12,-1,-17,-1,-16,-1,-22,-1,-21,-1,-23,-1,-26,-1,-27,-1,-29,-1,-32,-1,-32,-1,-35,-1,-36,-1,-39,-1,-40,-1,-41,-1,-44,-1,-43,-1,-48,-1,-46,-1,-52,-1,-48,-1,-55,-1,-50,-1,-57,-1,-55,-1,-58,-1,-57,-1,-62,-1,-56,-1,-68,-1,-56,-1,-69,-1,-59,-1,-69,-1,-64,-1,-66,-1,-69,-1,-65,-1,-71,-1,-67,-1,-70,-1,-68,-1,-71,-1,-69,-1,-71,-1,-71,-1,-69,-1,-71,-1,-70,-1,-70,-1}; }
	private static byte[] data21(){ return new byte[] {-72,-1,-68,-1,-71,-1,-68,-1,-70,-1,-68,-1,-70,-1,-64,-1,-71,-1,-62,-1,-69,-1,-63,-1,-65,-1,-62,-1,-63,-1,-61,-1,-60,-1,-60,-1,-57,-1,-58,-1,-55,-1,-54,-1,-54,-1,-51,-1,-52,-1,-47,-1,-49,-1,-45,-1,-46,-1,-42,-1,-42,-1,-40,-1,-37,-1,-39,-1,-32,-1,-36,-1,-29,-1,-31,-1,-27,-1,-27,-1,-23,-1,-23,-1,-20,-1,-19,-1,-16,-1,-15,-1,-13,-1,-10,-1,-10,-1,-7,-1,-3,-1,-7,-1,4,0,-4,-1,6,0,3,0,8,0,7,0,12,0,12,0,15,0,15,0,19,0,19,0,24,0,21,0,28,0,25,0,31,0,30,0,31,0,36,0,34,0,40,0,36,0,42,0,41,0,44,0,45,0,46,0,47,0,50,0,49,0,53,0,52,0,54,0,54,0,58,0,54,0,62,0,55,0,63,0,58,0,63,0,61,0,64,0,62,0,64,0,66,0,62,0,69,0,62,0,69,0,64,0,68,0,65,0,68,0,65,0,69,0,65,0,67,0,65,0,67,0,64,0,69,0,62,0,65,0,64,0,63,0,63,0,65,0,57,0,64,0,57,0,61,0,59,0,55,0,59,0,52,0,57,0,51,0,54,0,49,0,50,0,48,0,47,0,45,0,45,0,41,0,42,0,41,0,35,0,40,0,32,0,35,0,32,0,29,0,29,0,27,0,24,0,25,0,19,0,22,0,16,0,18,0,13,0,13,0,11,0,8,0,7,0,6,0,2,0,3,0,-2,-1,-1,-1,-5,-1,-5,-1,-9,-1,-8,-1,-13,-1,-11,-1,-18,-1,-14,-1,-19,-1,-22,-1,-19,-1,-27,-1,-23,-1,-28,-1,-28,-1,-30,-1,-33,-1,-32,-1,-36,-1,-36,-1,-38,-1,-39,-1,-41,-1,-42,-1,-43,-1,-46,-1,-44,-1,-50,-1,-46,-1,-51,-1,-50,-1,-51,-1,-54,-1,-53,-1,-54,-1,-58,-1,-52,-1,-62,-1,-53,-1,-62,-1,-58,-1,-59,-1,-63,-1,-57,-1,-65,-1,-58,-1,-66,-1,-58,-1,-67,-1,-59,-1,-65,-1,-62,-1,-64,-1,-62,-1,-63,-1,-63,-1,-63,-1,-63,-1,-61,-1,-62,-1,-62,-1,-61,-1,-62,-1,-58,-1,-60,-1,-60,-1,-57,-1,-60,-1,-54,-1,-58,-1,-53,-1,-57,-1,-51,-1,-55,-1,-48,-1,-55,-1,-45,-1,-51,-1,-46,-1,-45,-1,-47,-1,-41,-1,-44,-1,-39,-1,-38,-1,-34,-1,-31,-1,-28,-1,-25,-1,-22,-1,-21,-1,-17,-1,-15,-1,-13,-1,-11,-1,-9,-1,-7,-1,-7,-1,-3,-1,-4,-1,-3,-1,2,0,-5,-1}; }
	private static byte[] getData(){
		byte[] data = new byte[22040];
		System.arraycopy(data0(), 0, data, 0, 1024);
		System.arraycopy(data1(), 0, data, 1024, 1024);
		System.arraycopy(data2(), 0, data, 2048, 1024);
		System.arraycopy(data3(), 0, data, 3072, 1024);
		System.arraycopy(data4(), 0, data, 4096, 1024);
		System.arraycopy(data5(), 0, data, 5120, 1024);
		System.arraycopy(data6(), 0, data, 6144, 1024);
		System.arraycopy(data7(), 0, data, 7168, 1024);
		System.arraycopy(data8(), 0, data, 8192, 1024);
		System.arraycopy(data9(), 0, data, 9216, 1024);
		System.arraycopy(data10(), 0, data, 10240, 1024);
		System.arraycopy(data11(), 0, data, 11264, 1024);
		System.arraycopy(data12(), 0, data, 12288, 1024);
		System.arraycopy(data13(), 0, data, 13312, 1024);
		System.arraycopy(data14(), 0, data, 14336, 1024);
		System.arraycopy(data15(), 0, data, 15360, 1024);
		System.arraycopy(data16(), 0, data, 16384, 1024);
		System.arraycopy(data17(), 0, data, 17408, 1024);
		System.arraycopy(data18(), 0, data, 18432, 1024);
		System.arraycopy(data19(), 0, data, 19456, 1024);
		System.arraycopy(data20(), 0, data, 20480, 1024);
		System.arraycopy(data21(), 0, data, 21504, 536);
		return data;
	}
	/** Constructs a new AudioClip with the data from drum-03.wav. */
	public Drum03(){
		data = getData();
		format = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED, (float)(44100.0), 16, 1, 2, (float)(44100.0), false);
		lineInfo = new DataLine.Info(SourceDataLine.class, format, AudioSystem.NOT_SPECIFIED);
		try{ AudioSystem.getLine(lineInfo); }
		catch(IllegalArgumentException ex){ lineInfo = null; ex.printStackTrace(); }
		catch(LineUnavailableException e){}
	}
	/** A separate thread for playing drum-03.wav. */
	private class PlayThread extends Thread {
		private byte[] data;
		private AudioFormat format;
		private DataLine.Info lineInfo;
		private SourceDataLine line = null;
		private boolean playing = true;
		private float volume = 1;
		public PlayThread(byte[] d, AudioFormat f, DataLine.Info i, float v){ data = d; format = f; lineInfo = i; volume = v; }
		public void run(){
			try{
				line = (SourceDataLine) AudioSystem.getLine(lineInfo);
				line.open(format, AudioSystem.NOT_SPECIFIED);
				FloatControl vol = (FloatControl) line.getControl(FloatControl.Type.MASTER_GAIN);
				vol.setValue(volume);
				line.start();
				int written = 0;
				int available;
				while(written < data.length && playing){
					available = Math.min(line.available(), data.length - written);
					line.write(data, written, available);
					written += available;
				}
				int frames = data.length / format.getFrameSize();
				while(line.getFramePosition() < frames && playing) Thread.sleep(0);
			}
			catch(InterruptedException ex){ playing = false; }
			catch(LineUnavailableException ex){}
			if(line != null){ line.stop(); line.flush(); line.close(); }
			playing = false;
		}
		public void interrupt(){ playing = false; }
		public boolean isPlaying(){ return playing; }
	}
	/** A separate thread for looping play of drum-03.wav. */
	private class LoopThread extends Thread {
		private Drum03 clip;
		private boolean looping = true;
		public LoopThread(Drum03 c){ clip = c; }
		public void run(){
			while(looping){
				clip.play();
				while(clip.isPlaying() && looping){
					try{ Thread.sleep(0); }
					catch(InterruptedException ex){ looping = false; break; }
				}
			}
			if(!clip.isLooping()) clip.stop();
		}
		public void interrupt(){ looping = false; }
		public boolean isLooping(){ return looping; }
	}
	/** Plays drum-03.wav from the beginning, even if it is already playing or looping. */
	public void play() { play(0); }
	public void play(float balance){ if(lineInfo == null) return; doPlay(balance); }
	private synchronized void doPlay(float balance){
		doStopPlay();
		playThread = new PlayThread(data, format, lineInfo, balance);
		playThread.start();
	}
	/** Plays drum-03.wav continuously until stopped. */
	public void loop(){ if(lineInfo == null) return; doLoop(); }
	private synchronized void doLoop(){
		doStopLoop();
		loopThread = new LoopThread(this);
		loopThread.start();
	}
	/** Stops play and looping of drum-03.wav. */
	public void stop(){ if(lineInfo == null) return; doStop(); }
	private synchronized void doStop(){
		doStopPlay();
		doStopLoop();
	}
	private void doStopPlay(){
		if(playThread == null) return;
		if(playThread.isPlaying()) playThread.interrupt();
		playThread = null;
	}
	private void doStopLoop(){
		if(loopThread == null) return;
		if(loopThread.isLooping()) loopThread.interrupt();
		loopThread = null;
	}
	/** Tests if drum-03.wav is currently playing or looping.
	 * @return <tt>true</tt> if playing or looping, <tt>false</tt> otherwise */
	public boolean isPlaying(){ if(lineInfo == null) return false; return doIsPlaying(); }
	private synchronized boolean doIsPlaying(){
		if(loopThread == null && playThread == null) return false;
		else if(loopThread == null) return playThread.isPlaying();
		else if(playThread == null) return loopThread.isLooping();
		else return loopThread.isLooping() && playThread.isPlaying();
	}
	/** Tests if drum-03.wav is currently looping.
	 * @return <tt>true</tt> if looping, <tt>false</tt> otherwise */
	public boolean isLooping(){ if(lineInfo == null) return false; return doIsLooping(); }
	private synchronized boolean doIsLooping(){
		if(loopThread == null) return false;
		else return loopThread.isLooping();
	}
}